Java Thread中, join() 方法主要是让调用改方法的thread完成run方法里面的东西后, 在执行join()方法后面的代码。示例:

  1. class ThreadTesterA implements Runnable {
  2. private int counter;
  3. @Override
  4. public void run() {
  5. while (counter <= 10) {
  6. System.out.print("Counter = " + counter + " ");
  7. counter++;
  8. }
  9. System.out.println();
  10. }
  11. }
  12. class ThreadTesterB implements Runnable {
  13. private int i;
  14. @Override
  15. public void run() {
  16. while (i <= 10) {
  17. System.out.print("i = " + i + " ");
  18. i++;
  19. }
  20. System.out.println();
  21. }
  22. }
  23. public class ThreadTester {
  24. public static void main(String[] args) throws InterruptedException {
  25. Thread t1 = new Thread(new ThreadTesterA());
  26. Thread t2 = new Thread(new ThreadTesterB());
  27. t1.start();
  28. t1.join(); // wait t1 to be finished
  29. t2.start();
  30. t2.join(); // in this program, this may be removed
  31. }
  32. }

如果去掉t1.join()这个语句过后, 输出的书序是乱的, 加上这个语句过后, 就会按照顺序输出,  从某种意义上说实现了同步。

转自:http://auguslee.iteye.com/blog/1292203

最新文章

  1. Moon.Orm与其他Orm的技术对比
  2. php课程---文件操作及文件上传的代码总结
  3. redis3.0.5集群部署安装详细步骤
  4. 第三十六章 metrics(4)- metrics-graphite
  5. 银行IT入门深似海
  6. Watch out for these 10 common pitfalls of experienced Java developers &amp; architects--转
  7. Bulls and Cows
  8. 收藏的博客--Ogre
  9. (medium)LeetCode 264.Ugly Number II
  10. 获取客户端访问的ip地址
  11. 利用openssl进行RSA加密解密
  12. Hazelcase 简介
  13. myql 注意事项
  14. Installshield在安装结束时刷新系统
  15. android 菜单的总结
  16. destoon源码分析一
  17. [SDOI2013]森林
  18. JS语法转换-ES6转ES5
  19. gravity 和 layout_gravity
  20. Vuejs——(1)入门(单向绑定、双向绑定、列表渲染、响应函数)

热门文章

  1. spring + myBatis 常见错误:注解事务不回滚
  2. tcpdump for android L 5.x with pie support
  3. nyoj_299_Matrix Power Series_矩阵快速幂
  4. Divide and conquer:Drying(POJ 3104)
  5. 屏幕截图、录像FastStone Capture
  6. ajax传值方式为数组
  7. iOS-WKWebView携带cookie发送http请求,cookie失效
  8. IOS-UIIamge初始化的几种方法的比较
  9. 6. ZigZag Conversion
  10. osg::NodeVisitor中计算一个节点对应的世界变换矩阵、法向量、顶点坐标