java---线程

进程,运行中的一个程序,换句话程序进内存即进程。

聊聊线程,从为啥要他,举个例子,某业务执行完耗时让客户没法等。这时线程就登场罗。分拨可异步处理业务环节,交由线程独自处理,跳出同步运行。

线程实现?三种,一类,两接口。接口是实现方式。真正是类。就算实现接口,还不是线程类,接口实现,交给线程类。接口包括可返回值callable,交给线程池,返回未来。

线程生命周期里面有初始化start,阻塞(有资格没资源),运行时run,休眠sleep(放弃资源和资格),等待wait(放弃资格和资源),死亡stop

多线程的核心是阻塞

cpu采用分时调度,抢占调度,卡机

运行代码,虚拟机找系统开执行路径,这路径就是线程。每个线程就是一个虚拟机到处理器路径。

start方法干啥?仅可启动一次,干了两件事,叫虚拟机起线程,虚拟机运行run方法。启动两次报异常状态。
不调start,调run,单线程执行方法。

方法栈,各线程独自占用内存,开独自的栈空间。互不干预。也就是随机结果的原因。

currentthread是获取当前全部线程

接口实现,面向接口,松耦合,多实现。共享变量,把接口实现给多个线程作为对象(线程主方法)

线程池,就是集合存了多个线程,比如hashmap存了多个thread

线程排查安全隐患,要排查没安规矩走。

死锁,多线程,同步的嵌套。单线程没死锁。

synchronized,对象锁,方法锁(this锁),静态方法锁(类.class);

jdk5引入lock=new reentrantlock()和unlock()对,记得unlock要在finally中执行替代synchronized。

等待唤醒,线程通信机制,wait和notify。基于锁的基础上实现。线程间默契配合。两个方法归超类object调用。

并发包集合类,redis队列,起到中间件,队列的作

回归教科书的生产者消费者,关键核心中间产品定义。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值