如何控制線程執行的順序?

2021-08-27 16:25:08 字數 1826 閱讀 8432

public class myservice 

for (int i = 0; i < 2; i++)

ordernum = 2;

notifyall();

} catch (interruptedexception e)

}public synchronized void methodb()

for (int i = 0; i < 2; i++)

ordernum = 3;

notifyall();

} catch (interruptedexception e)

}public synchronized void methodc()

for (int i = 0; i < 2; i++)

ordernum = 1;

notifyall();

} catch (interruptedexception e)

}} import service.myservice;

public class threadaa extends thread

@override

public void run() }

import service.myservice;

public class threadbb extends thread

@override

public void run() }

import service.myservice;

public class threadcc extends thread

@override

public void run() }

import extthread.threadcc;

import service.myservice;

import extthread.threadaa;

import extthread.threadbb;

public class run }

}

執行結果:

可以看到執行緒的啟動按順序執行了。共享物件鎖,可以保證每個方法只能同時有乙個執行緒進入,配合wait和notifyall方法,可以啟動或者喚醒執行緒。

thread.join把指定的執行緒加入到當前執行緒,可以將兩個交替執行的執行緒合併為順序執行的執行緒。

class t11 extends thread } 

class t22 extends thread }

class t33 extends thread }

public class test2

}

class t1 extends thread  catch (interruptedexception e) 

system.out.println("in t1");

}} class t2 extends thread

public void run() catch (interruptedexception e)

system.out.println("in t2");

}} class t3 extends thread

public void run() catch (interruptedexception e)

system.out.println("in t3");

}} public class test

}

如何控制線程執行的順序?

1 如何控制線程執行的順序?有三個執行緒,讓這三個執行緒按照我們指定的順序執行!答 1.join 方法 讓主線程等待其他執行緒執行完成之後執行。讓主線程放棄cpu的控制權,等待呼叫join方法的執行緒執行完成之後再執行!join 方法底層呼叫的wait 方法,是讓主線程等待其他執行緒執行完成之後執行...

控制線程的執行順序

在此之前實現了兩個執行緒的交替執行,那麼也該來研究一下如何控制線程的執行順序。此筆記只有部分實現。1,使用join 簡單易操作,此方法有個缺陷就是 呼叫程式寫起來有點冗長,如果有n個執行緒,那麼main 就會非常長,而且有些許重複 program description 控制線程的執行順序 1,其餘...

多執行緒02 如何控制線程執行順序

這裡使用join 方法 api中那句 等待該執行緒終止 主語是join方法被呼叫時所處的執行緒,該執行緒 是指呼叫join方法的執行緒。比如現在有a b兩個執行緒物件,在a執行緒 現b.join 那麼a執行緒將會被阻塞 或者說掛起 直到b執行緒執行完畢才會繼續執行b.join 語句下面的 即繼續執行...