多线程笔记

++线程不安全叫非线程安全

1、多线程的概念
    进程 -- 线程(进程的最小单元)
    目的:高并发;提高效率
2、多线程的实现(4个,实际上就1个Runnable)
    1)继承Thread类
    2)实现Runnable接口 有返回值
    3)实现Callable接口 没有返回值
    4)线程池

3、多线程的生命周期
    创建线程--->就绪(.start())--->运行--->死亡
new Thread        |             |
                  |             |sleep/IO/wait
                  |             |
                   ----------挂起(休眠)
  时间/流读取完成/notify(唤醒)

4、生产消费者模型:
currentThread():获取当前线程

5、锁:synchronized  Lock  死锁(非锁)
synchronized锁:
    wait(等待) notify(唤醒)
    sleep:线程休眠不释放锁,暂停,等待时间唤醒
    wait:线程休眠释放锁,死亡,notify唤醒,可以有多个,一定执行一次,需要在synchronized中
Lock锁:
    Lock lock = new ReentrantLock();
    lock.lock();
    lock.unlock();
死锁(非锁):
    解决办法:休眠

    ConcurrentHashMap():HashMap加锁,分段锁

Tread中的常用方法
Person p1 = new Person("KN");
    Person p2 = new Person("SDF");
    p1.join();//等待主线程执行完后,执行
    p1.setPriority(10);//更改优先级为10级
    p2.setDaemon(true);//是否设为守护线程

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值