并发(简述)

并发


并发:当有多个线程在操作时,如果系统只有一个CPU,则它根本不可能真正同时进行一个以上的线程,它只能把CPU运行时间划分成若干个时间段,再将时间 段分配给各个线程执行,在一个时间段的线程代码运行时,其它线程处于挂起状。.这种方式我们称之为并发(Concurrent)。

线程的创建

  • 实现Runnable接口
  • 建立一个Thread的子类来实现(不推荐使用)

线程状态

  1. 新建(new)
  2. 就绪(Runnable)
  3. 阻塞(Blucked)
  4. 死亡(dead)

线程方法

  • 线程礼让(礼让不一定成功
    例如:
Thread.yield();
  • 线程休眠
Thread.sleep();
  • 线程停止
    1. 循环控制(for while if)
    2. 标志位控制(flag)
    3. stop(JDK不建议使用,或者已经过时的方法)
  1. 线程插入
    1. 在此线程执行完毕后,在执行其他线程。(插队)例如:
demo4 demo4 = new demo4();
Thread demo= new Thread(demo4);
demo.join();
  1. 守护线程
    守护线程默认false,例子是将demo作为守护线程。例子如下:
demo4 demo4 = new demo4();
Thread demo= new Thread(demo4);
demo.setDaemon(true);
  1. 线程优先级
thread.setPriority(3);

三大不安全线程

  1. 不安全的买票
  2. 两个人去银行用同一个账户取钱
  3. 线程不安全的集合(ArrayList,HashMap,HashSet)
    结论:以上均是多个线程操作一个对象

同步方法以及同步块

  1. 锁(lock)
  2. synchronized关键字
  3. 死锁
  4. 乐观锁
  5. 悲观锁
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

啊~小 l i

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值