码迷,mamicode.com
首页 > 编程语言 > 详细

多线程

时间:2017-09-15 10:06:05      阅读:123      评论:0      收藏:0      [点我收藏+]

标签:run   err   new   ==   暂停   public   防止   for   str   

一、实现线程的两种方式:

1)继承Thread类

完成线程的的代码放在run()中,对其进行覆盖;

public ThreadTest extends Thread(){

  
public void run(){

//线程代码

}
 } 

//启动线程 new ThreadTest().start();

 

 

2)实现Runnable接口

实现Runnable接口,并重写该接口的run()方法,该run()方法同样是线程执行体,创建Runnable实现类的实例

class MyRunnable implements Runnable {
     private int i = 0;
      @Override
     public void run() {
          for (i = 0; i < 100; i++) {
              System.out.println(Thread.currentThread().getName() + " " + i);
         }
     }
 }
public class ThreadTest {
  
     public static void main(String[] args) {
         for (int i = 0; i < 100; i++) {
             System.out.println(Thread.currentThread().getName() + " " + i);
             if (i == 30) {
                 Runnable myRunnable = new MyRunnable(); // 创建一个Runnable实现类的对象
                 Thread thread1 = new Thread(myRunnable); // 将myRunnable作为Thread target创建新的线程
                Thread thread2 = new Thread(myRunnable);
                thread1.start(); // 调用start()方法使得线程进入就绪状态
                thread2.start();
             }
         }
     }
}

两种方法创建线程时注意区别

二、线程的生命周期

7种状态:出生--就绪---执行---等待、阻塞、休眠、死亡

休眠:Thread.sleep(2000);//休眠2s

线程的加入:threadB.join();

join方法使当前线程暂停,直到join的线程执行完毕

线程中断:stop()方法

线程的优先级

三、线程的同步

为了线程安全,防止线程冲突

java提供了线程同步的机制来防止资源访问的冲突

线程同步机制:

同一时间只允许一个线程访问,object可以为任意对象

1)同步块

synchronized(Object){

  //共享的资源,如代码块

}

2)同步方法

synchronized void  f(){

}

 

多线程

标签:run   err   new   ==   暂停   public   防止   for   str   

原文地址:http://www.cnblogs.com/limingxian537423/p/7524317.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!