Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Jenkins pipeline script - Thread programming

I am trying to create multiple threads in a jenkins pipeline script. So, I took simple example as below. But it not working. Could you please let me know?

In the below example, jobMap contains a key as a string and value as List of Strings. When I just display the list, the values printed properly, but when I used 3 different ways to create threads and thus to display, it is not working.

for ( item in jobMap ) 
    {           
        def jobList = jobMap.get(item.key);

        **// The following loop is printing the values**
        for (jobb in jobList) 
        {
                 echo "${jobb}"
        }

// Thread Implementation1:

        Thread.start 
        {

                for (jobb in jobList) 
                {
                 echo "${jobb}"
                }

        }

// Thread Implementation2:

        def t = new Thread({ echo 'hello' } as Runnable)
        t.start() ;
        t.join();

// Thread Implementation3:

        t1 = new Thread( new TestMultiThreadSleep(jobList));
        t1.start();         
    }



    class TestMultiThreadSleep implements Runnable {
   String jobs;
   public TestMultiThreadSleep(List jobs) {
      this.jobs = jobs;
   }



     @Override
       public void run() 
{
       echo "coming here"
         for (jobb in jobs) 
            {
                 echo "${jobb}"
            }                      
       }
    }
like image 550
Prasad Avatar asked Oct 14 '25 16:10

Prasad


1 Answers

Jenkins has special step - parallel(). In this step you can build another jobs or call Pipeline code.

like image 139
FCh Avatar answered Oct 17 '25 10:10

FCh



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!