A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 洪伟 中级黑马   /  2015-6-21 00:58  /  168 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

java实现多线成有两种方法,1.继承一个Thread类,复写run方法。2.实现runnable接口,复写run方法

继承:

   class A extends Thread{

            run(){
            //daima
}
}


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

缺点  :由于java 只能单继承,所以这个类不能在继承其他的类

接口:

class A implements Runnable{

            run(){
            //daima
}
}

A a = new A();

new Thread(a).start();

java 的线程周期 为  新建、就绪、运行、阻塞、死亡 每个过程都有一个触发条件。

new 线程后为新建,start()后为就绪,得到cpu资源为运行。阻塞和死亡的条件比较复杂,也有很多方法。

阻塞:可以通过 sleep 让线程进行休眠,一定时间后 线程从新进入就绪状态。yield 让线程让出资源从新进入就绪状态。notify 可以唤醒休眠的线程进入就绪状态。

当线程执行完就进入死亡状态。

通过setPriority方法可以设置线程的优先级,优先级高的可以优先得到资源。

多线程同步时 有些代码块的访问会出bug  比如:买票,有可能出现一张票买两次或多次的现象。解决办法就是添加同步代码块 synchronized 线程锁。

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马