java多线程休眠工作笔记
线程休眠的方法是Thread.sleep(long millis) 和Thread.sleep(long millis, int nanos)
sleep()单位是毫秒
问题1.休眠的时候,哪个线程会休眠
答案:哪个线程调用了sleep,哪个就会休眠
问题2.主线程能休眠了
可以
Thread.sleep()经常被调用来进行程序的等待,比如你想让你的程序定时执行,可以写个代码
while(a > 1){
run...
Thread.sleep(24*3600*1000);// 每天跑一次
}
看个例子
<table width="620" align="center" border="0" cellpadding="1" cellspacing="1" style="background:#FB7"> <tr> <td width="464" height="27" bgcolor="#FFE7CE"> 代码如下</td> <td width="109" align="center" bgcolor="#FFE7CE" style="cursor:pointer;" onclick="doCopy('copy1761')">复制代码</td> </tr> <tr> <td height="auto" colspan="2" valign="top" bgcolor="#FFFFFF" style="padding:10px;" class="copyclass" id=copy1761>package com.javaer.thread;
public class TSleep implements Runnable {
public static void main(String[] args) {
Thread s1 = new Thread(new TSleep(),"S1");
Thread s2 = new Thread(new TSleep(),"S2");
s1.start();
s2.start();
}
@Override
public void run() {
// TODO Auto-generated method stub
for (int i = 0; i < 10; i ) {
System.out.println("线程" Thread.currentThread().getName() "第" i "次执行!");
try {
Thread.sleep(30);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
线程S1第0次执行!
线程S2第0次执行!
线程S1第1次执行!
线程S2第1次执行!
线程S1第2次执行!
线程S2第2次执行!
线程S2第3次执行!
线程S1第3次执行!
线程S1第4次执行!
线程S2第4次执行!
线程S1第5次执行!
线程S2第5次执行!
线程S2第6次执行!
线程S1第6次执行!
线程S1第7次执行!
线程S2第7次执行!
线程S2第8次执行!
线程S1第8次执行!
线程S1第9次执行!
线程S2第9次执行!
例子得出,线程的时间休眠并非精确控制,只是接近精确。 有时候线程s2先执行了。
您可能感兴趣的文章:
java多线程休眠工作笔记
笔记本开机黑屏如何解决?笔记本开机黑屏怎么办
java多线程学习笔记之线程安全
笔记本进水开不了机怎么处理?维修多少钱?
java多线程的优先级实例程序
[Go 教程系列笔记] goroutine(协程)
Java多线程中的wait与notify,notifyall例子
Windows 8笔记本睡眠休眠无法唤醒屏幕怎么办
《Go 语言程序设计》读书笔记 (七) Goroutine 与系统线程的区别
golang 所有进程休眠_Golang中Goroutine的调度流程