java--线程

本文介绍了Java中的线程概念,包括如何通过继承Thread和实现Runnable接口创建线程,线程的不同状态(新建、就绪、运行、阻塞和死亡),以及多线程中同步问题的处理,如synchronized关键字和wait/notify机制的应用。

线程:是进程内部的最小执行单元,一个进程可以包含多个线程

创建线程:通过继承Thread或是通过实现Runnable接口(主要是为了解决java中不允许多继承的问题)

Thread:

定义:
public class MyThread extends Thread {
public void run() {
}
}
调用:
MyThread thread = new MyThread();
thread.start();
Runnable:
定义:
public class MyTask implements Runnable{
@Override
public void run() {
……
}
}
调用:
MyTask myTask = new MyTask ();
Thread thread = new Thread(myTask);和Thread继承的不同之处就是需要将实现Runnable接口的对象装在thread中
thread.start();
线程的状态:
 新建:当一个Thread类或其子类的对象被声明并创建时,新生的线程对
            象处于新建状态
就绪:处于新建状态的线程被start()后,将进入线程队列等待CPU时  
           间片,此时它已具备了运行的条件,只是没分配到CPU资源
运行:当就绪的线程被调度并获得CPU资源时,便进入运行状态,run
         ()方法定义了线程的操作和功能
 阻塞:在某种特殊情况下,被人为挂起或执行输入输出操作时,让出
            CPU并临时中止自己的执行,进入阻塞状态
 死亡:线程完成了它的全部工作或线程被提前强制性地中止或出现异常
            导致结束
多线程:在一个进程中可以使用多个线程,这些线程会一起运行效率更高,线程都是独立运行的。
多线程同步问题:在多个线程访问同一份资源时可能会引起冲突,所以要加锁,先来后到。
关键字:synchronized放在代码块或方法声明中 使用完自动释放锁
               synchronized中还有 wait()阻塞  notify唤醒 notifyAll唤醒全部wait()线程
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值