Can I do parallel processing in Arduino?
You do not need parallel processing or finite-state machines for that:

// Vector with digital pin numbers for LEDs (with resistor to ground)
const int LED_MAX = 5;
const int LED[LED_MAX] = { 2, 3, 4, 5, 6 };

// Vector with analog pin numbers for LDR (with pullup resistor)
const int LDR_MAX = 5;
const int LDR[LDR_MAX] = { A0, A1, A2, A3, A4 };

// Analog value or lower when to light the LED
const int THRESHOLD = 200;

void setup()
{
   // All LED pins should be digital output pins
   for (int i = 0; i &lt; LED_MAX; i++) 
     pinMode(LED[i], OUTPUT);
}

void loop()
{
   // Read all LDRs and set LED pins according to threshold
   for (int i = 0; i &lt; LDR_MAX; i++)
     digitalWrite(LED[i], analogRead(LDR[i]) &lt; THRESHOLD);
}


But if you really want to describe this as multiple tasks you could use the Simple Scheduler library:

#include &lt;Scheduler.h&gt;

const int THRESHOLD = 200;    

template&lt;int LED&gt; void setup()
{
   pinMode(LED, OUTPUT);
}

template&lt;int LED, int LDR&gt; void loop()
{
   digitalWrite(LED, analogRead(LDR) &lt; THRESHOLD);
   yield();
}

void setup()
{
   Scheduler.start(setup&lt;2&gt;, loop&lt;2, A0&gt;);
   Scheduler.start(setup&lt;3&gt;, loop&lt;3, A1&gt;);
   Scheduler.start(setup&lt;4&gt;, loop&lt;4, A2&gt;);
   Scheduler.start(setup&lt;5&gt;, loop&lt;5, A3&gt;);
   Scheduler.start(setup&lt;6&gt;, loop&lt;6, A4&gt;);
}

void loop()
{
   yield();
}