如题:怎么在main方法里用一个线程的sleep()方法让一个循环执行一次后阻塞一秒再循环下一次
请写一个例子出来,感激不尽
谢谢,这个我会了,但是在阻塞这一秒的时候程序却执行了其他的代码,请问我要如何做到程序在阻塞的这一秒时间内,程序不会执行其他代码呢。提示:当前程序中只有两个线程,一个线程是阻塞500毫秒,一个线程是1000毫秒。要求如下:
首先,我要保证500毫秒的线程优先执行,
其次,再执行1000毫秒的线程。
最后,当这两个线程都执行完毕后,再执行其他代码。
亲,有点麻烦,麻烦优化行么
追答是哪里麻烦了...
你直接粘到java里,把包名类名改一下,运行就知道了。
运行结果:
t1:0
t1:1
t1:2
t1:3
t1:4
t1:5
t1:6
t1:7
t1:8
t1:9
t2:0
t2:1
t2:2
t2:3
t2:4
t2:5
t2:6
t2:7
t2:8
t2:9
t4:0
t3:0
t4:1
t3:1
t4:2
t3:2
t4:3
t3:3
t4:4
t3:4
t4:5
t3:5
t4:6
t3:6
t4:7
t3:7
t4:8
t3:8
t4:9
t3:9
这些线程都是异步运行的,所以一开始都会运行的,没有顺序
但是当,t2,t3,t4运行到t1.join的时候,线程就会产生阻塞,让t1运行,直到t1运行结束。
t2也是一样。
具体的join方法你可以看达内TTS多线程这一块的讲解。
http://pdf7.tarena.com.cn/tts8_source/ttsPage/JAVA/JSD_V04/JAVASE02/DAY04/SUPERDOC/01/index.html
谢谢,这个我会了,但是在阻塞这一秒的时候程序却执行了其他的代码,请问我要如何做到程序在阻塞的这一秒时间内,程序不会执行其他代码呢。提示:当前程序中只有两个线程,一个线程是阻塞500毫秒,一个线程是1000毫秒。要求如下:
首先,我要保证500毫秒的线程优先执行,
其次,再执行1000毫秒的线程。
最后,当这两个线程都执行完毕后,再执行其他代码。
可以写个例子么?