java 多线程 Thread

多线程 Thread
一、概念
1、进程
程序静止状态就是软件、应用, 运行中的程序称之为进程
宏观并行 微观串行
2、线程
进程的子进程 是进程中一条顺序控制流程
宏观并行 微观串行
二、线程组成
1、时间片 CPU分配的时间片段(5-20ms)
2、操作数据
栈:存储局部变量 线程独立
堆:存储对象 线程共享
3、程序[代码]
(1)创建线程方式一 继承Thread类 覆盖run方法
在这里插入图片描述
启动:new Thread1().start() // start()方法表示启动线程
(2)创建线程方式二 实现Runnable接口 实现run方法
在这里插入图片描述
启动:new Thread(new Thread2()).start() // start()方法表示启动线程
三、线程状态
在这里插入图片描述
阻塞状态
四、线程异步
方法同步
在这里插入图片描述
线程异步
在这里插入图片描述
五、线程安全
线程安全问题:多线程并发访问临界资源时,破坏了原子操作,可能导致操作数据不一致
临界资源 : 多线程共同操作的数据
原子操作 : 不可分割的整体 转账
六、解决方案【线程同步】
加锁
锁:互斥锁标记 资源的保护形式
在同一时间只支持一条线程操作,并且释放锁标记后才能供其他线程操作
语法:使用 synchronized 修饰
修饰:
代码块【同步代码块】
synchronized(临界资源对象){
//原子操作
}
方法【同步方法】
public synchronized void ma(){
//原子操作
}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值