线程的概述

一、

进程是由最少一个或者多个线程组成,线程是进程的最小单位

线程是抢占式运行的。

同一个进程下的多个线程是可以数据共享的

二、并发和并行

同时发生的,但轮流交换执行叫并发

真正的一起同时执行叫并行

三、创建线程有两种方法

  1. 继承 thread 
  2. 实现 Runnable

方法 getPriority 设置优先级

 Sleep 设置暂停时间

 注:不靠谱 开发不用

应该用锁

四、锁

当线程同时操作一个数据时容易产生抢资源的情况 容易导致数据不准确等情况

因此需要同步方法枷加锁:synchronized

两种方案:

1、同步方法

例:

public synchronized void eat () {

}

  1. 同步代码块

synchronized (this) {

代码

}

第一种加锁后只有一个线程能进入到方法里 其他线程先等待必须等全部结束才会释放

第二种加锁后线程在代码块外面等待,每跑一圈都会重新抢夺线程

因此第二种比较好

五、锁分类

两种:

Synchronized 为隐式锁

Lock 为显示锁

六、死锁

死锁就是当两个线程互相有对方的资源时,两个线程又不主动释放资源,就会形成僵持,形成死锁

七、生命周期

五个阶段

  1. 线程创建成功
  2. 线程可运行状态
  3. 线程运行状态
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值