注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

TERONY的博客

Still Achieving.

 
 
 

日志

 
 

sleepless in java & java.lang.thread  

2011-06-11 18:05:21|  分类: Profession |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

//选择创建线程的方式时,推荐采用实现Runnable接口方式

public class FirstThreadTest {
 public static void main(String[] args) {
  System.out.println("主线程开始执行……");

  Thread thread1 = new MyThread();
  System.out.println("启动一个新线程(thread1)……");
  thread1.start();

  MyRunner mr = new MyRunner();
  Thread thread2 = new Thread(mr);
  System.out.println("启动一个新线程(thread2)……");
  thread2.start();
  
  System.out.println("主线程执行完毕。");
 } 
}

//将类定义为java.lang.Thread类的子类并重写run方法

class MyThread extends Thread {
 @Override
 public void run() {
  for (int i=0; i<100; i++) {
   System.out.println("MyThread:" + i);
  } 
 }
}

//定义实现java.lang.Runnable接口的类并实现run方法

class MyRunner implements Runnable {
 public void run() {
  for (int i=0; i<100; i++) {
   System.out.println("MyRunner:" + i);
  }
 }
}

//线程让步

public class ThreadYieldTest {
 public static void main(String[] args) {
  //获取当前线程的名称
  System.out.println(Thread.currentThread().getName());
  Thread thread1 = new Thread(new YieldThread());
  thread1.start();
  Thread thread2 = new Thread(new YieldThread());
  thread2.start();
 }
}

class YieldThread implements Runnable {
 public void run() {
  for (int i=0; i<100; i++) {
   System.out.println(Thread.currentThread().getName() + " : " + i);
   if (i%10 == 0) { //当i可以被10整除时,当前线程让步给其他线程
    Thread.yield(); //线程让步的方法
   }
  }
 }
}

 

//Thread 的 Join 方法,通常用来将子线程调用到主线程中

public class ThreadJoinTest {
 public static void main(String[] args) {
  Thread thread1 = new Thread(new ThreadJoin());
  thread1.start();
  //在主线程中执行for循环
  for (int i=1; i<=50; i++) {
   System.out.println(Thread.currentThread().getName() + " : " + i);
   if (i==30) {
    try {
     thread1.join();
    } catch (InterruptedException e) { e.printStackTrace(); }
   }
  }
 }
}

class ThreadJoin implements Runnable {
 public void run() {
  for (int i=0; i<=20; i++) {
   System.out.println(Thread.currentThread().getName() + " : " + i);
   try {
    Thread.sleep(10);
   } catch (InterruptedException e) { e.printStackTrace(); }
  }
 }
}

  评论这张
 
阅读(33)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017