先看一下比较简单的,sleep() join()的用法。
package thread1;
public class TreadTest implements Runnable {
public static int a = 0;
public void run() {
for (int i = 0; i < 100; i++) {
try {
Thread.sleep(2000);
a += 1;
System.out.println("thread1" + i);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
这个类很简单,跑起来以后每个循环延迟2000,注意一点就可以了,Thread.sleep这个方法的延迟,是对于当前线程的延迟,而不是所有线程都去睡了。
第二个是主类
package thread1;
/**
* @author Administrator
* join方法的测试
*/
public class Test {
public static void main(String[] args) {
TreadTest t = new TreadTest();
Thread th = new Thread(t);
th.start();
try {
th.join(20000); //运行TH线程20000毫秒后 执行下面
} catch (InterruptedException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
//
//try {
// //th.join(0);
//} catch (InterruptedException e) {
// // TODO Auto-generated catch block
// e.printStackTrace();
//}
for (int i = 0; i < 100; i++) {
try {
Thread.sleep(500);
System.out.println("main" + i);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
System.out.println(t.a);
}
}
大家可以运行起来看效果,底下的这个循环就是主线程,通过join这个方法进行对主线程和线程ThreadTest的先后执行,join不带任何参数时,说明要完全执行完当前线程后才允许其他线程运行,join(2000)代表先执行当前线程2000毫秒后允许其他线程。
分享到:
相关推荐
`boost::this_thread::sleep`函数可以让当前线程休眠指定的时间。 4. **线程间的通信**:`boost::future`和`boost::promise`允许线程间的数据传递。一个线程通过`promise`设置数据,另一个线程通过`future`获取数据...
- 工作线程可能使用`Thread.Sleep()`模拟耗时操作,主线程则可能使用`Thread.Join()`或`async/await`等待其完成。 - 回调函数可能通过`Action`或`Func`委托定义,并在工作线程完成时被调用,更新控制台输出或其他...
在Linux下,可以使用POSIX线程(pthread)库,学习如何创建、同步和管理线程(`pthread_create`、`pthread_join`、`pthread_mutex`等)。 这些例程覆盖了C语言在Linux环境下的核心概念和实践,是提升系统级编程技能...
Python 锁的使用 在多线程编程中,同步机制是至关重要的,它确保了对共享资源的有序访问,防止数据竞争和不一致状态的发生。...无论是 Python2 还是 Python3,理解并正确使用锁都能提升多线程程序的稳定性和可靠性。
4. **线程和并发**:在多任务环境中,线程API如`pthread_create()`、`pthread_join()`和`pthread_mutex_*`系列函数用于创建、同步和管理线程。线程间的同步可以使用互斥锁、条件变量等机制,确保资源安全共享。 5. ...
最后,书中可能会讲解一些高级主题,如多线程编程(`pthread_create()`、`pthread_join()`等),异步I/O(AIO),以及系统性能分析和优化技巧。这些内容将帮助读者全面掌握Linux环境编程的深度和广度。 总之,...