免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2231 | 回复: 2

【转载】IBM 轻松使用线程系列(你真的理解线程了吗?) [复制链接]

论坛徽章:
0
发表于 2003-06-24 11:25 |显示全部楼层
轻松使用线程: 同步不是敌人---我们什么时候需要同步,而同步的代价到底有多大?
http://www-900.ibm.com/developerWorks/cn/java/j-threads/index.shtml


轻松使用线程: 减少争用---抛开您自己的习惯,提高应用程序的性能
http://www-900.ibm.com/developerWorks/cn/java/j-threads/index2.shtml


轻松使用线程: 不共享有时是最好的---利用 ThreadLocal 提高可伸缩性
http://www-900.ibm.com/developerWorks/cn/java/j-threads/index3.shtml
以前我们一直在想怎么在线程间同步共享对象,很麻烦,但是你有没有想过把
共享对象和某个线程绑定起来,并且只有在这个线程里才可以访问这个对象,
岂不是更好,很典型的情况就比如:连接池,从 jdk 1.2 开始,java 提供了
ThreadLocal 对象来做这件事情。

论坛徽章:
0
发表于 2003-06-24 14:50 |显示全部楼层

【转载】IBM 轻松使用线程系列(你真的理解线程了吗?)

cinc  大哥:
      关于线程你可以巴线程的停止简单说说么?
     例如:我用到了四个线程,一个线程事主线程负责启动和管理其他四个线程.当其他三个线程任务完成时,都需要主线程把其他的子线程停掉,并且自身也停掉,我是全部用的Stop方法,如有一个子线程isAlive为false我就停stop所以的线程,但我觉得这样作有点不妥,请指点一下,好么?
谢谢!

论坛徽章:
0
发表于 2003-06-24 15:23 |显示全部楼层

【转载】IBM 轻松使用线程系列(你真的理解线程了吗?)

Java 不推荐用 stop 停止线程,当 thread 的 run() 函数运行完毕时,线程就结束了。
所以可以使用“标志位” 的方法,来停止线程,代码如下:


  1. public class MyThread extends Thread{
  2.     boolean isRunning = true;

  3.     public void setRunning( boolean isRunning ){
  4.         this.isRunning = isRunning;
  5.     }

  6.     public MyThread(){
  7.         System.out.println ("My thread started");
  8.         start();
  9.     }

  10.     public void run(){
  11.         while( isRunning ){
  12.             // output message every 1 second
  13.             System.out.println ("My thread is running");
  14.             try{
  15.                 Thread.sleep(1000);
  16.             }catch( InterruptedException e){
  17.             }
  18.         }
  19.         System.out.println ("My thread stopped");
  20.     }

  21.     public static void main(String args[]){
  22.         // Start MyThread
  23.         MyThread myThread = new MyThread();
  24.             try{
  25.                 // wait 5.5 second
  26.                 Thread.sleep(5500);
  27.                 myThread.setRunning( false );
  28.             }catch( InterruptedException e){
  29.             }
  30.     }
  31. }
复制代码


上面的例子,在 main 函数中就可以通过 isRunning 变量控制 MyThread 的停止
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP