Java笔记11-线程

 

多线程
    方式1:继承Thread
              1.自定义类继承Thread
              2.覆盖run()方法
              3.创建线程对象
              4.启动线程
Thread类中的方法
    String getName():返回该线程的名称。 
    void setName(String name):改变线程名称 
    void setPriority(int newPriority):更改线程的优先级。(1~10)
    int getPriority():返回线程的优先级 (每个线程默认优先级5)
    static Thread currentThread():返回当前正在执行的线程对象
    static void sleep(long millis):睡眠
    void join():等待该线程终止。 
    同步代码块:
    synchronized (对象) {
            原子操作
    }
    
    原子操作:一段代码在多线程环境下其中一个线程在执行时,必须一次性执行完毕,不能够有其他线程干预。
    对象:如同锁的功能。
    
线程同步(安全):效率低(每个线程在执行的时候都会去判断有没有上锁)
线程异步(不安全):效率高
 
同步方法:将同步声明在方法上,表示整个方法只能有一个线程在执行。
同步方法 
    实例方法锁对象是:this
    静态方法锁对象是:字节码文件对象
    
死锁
死锁问题:多个线程间互相等待的一种情况。
  如何解决?
   java提供了等待唤醒机制。
使用到的方法是Object类中:
    void wait():让当前线程处于等待状态会放弃cpu的执行权和释放与该线程相关的所有锁标记,这个方法必须在同               步代码块中使用锁对象调用。
    void notify()/notifyAll():必须在同步代码块中调用,表示唤醒当前锁对象的等待队列中一个线程/多个线程
    
线程间的通信
概念:不同种类线程操作同一个资源。
案例:生产者(添加数据)和消费者(消费数据)。

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值