网易首页 > 网易号 > 正文 申请入驻

Java线程运行周期方法和多线程模式概述

0
分享至

1、Java线程周期方法:

new(),

start(),

run(),

dead,

block:被另一线程阻塞;resume:唤醒;

sleep:释放CPU,不释放锁;

wait:释放CPU,释放锁;

notify,notifyAll:唤醒通知,对应wait;

yield:临时暂停,让线程将资源释放;

join:调用线程,等待线程结束后再执行;

synchronized:用于保护共享数据;

wait,notify,notifyAll是Object类的方法,sleep和yield是Thread类的方法;

谈下使用线程方法interrupt和InterruptException如何优雅结束线程。

首先,interrupt方法是线程的实例方法,即线程对象调用之。当线程对象调用了该方法后,本质是对该线程对象的中断标志位进行置位操作。线程在进入sleep、join、wait这三个方法后会不断检查中断标志位,一旦中断标志位被置位,则抛出InterruptException,于是会退出死循环进入catch语句,也就是退出了线程(一般情况下不会在catch中死循环吧?)。

对于sleep、join来说,只要检测到中断标志位被置位就立刻抛出InterruptException,而wait由于此时线程已经交出了锁,所以要重新获取到锁之后才可以抛出异常。

另外,线程的实例方法isInterrupted是检测线程中断标志位是否被置位的方法,interrupted则是检查中断标志位后将标志位清空(如果已经被置位)。

2、Java多线程设计模式:

2.1、Single Thread Execution(单线程执行)用于处理能通过这座桥的只有一个人

参考链接:http://blog.csdn.net/sinat_23092639/article/details/52549374

2.2、Immutable Pattern(不变模式)

一个类的内部状态创建后,在整个生命期间都不会发生变化时,就是不变类。这种使用不变类的做法叫做不变模式。

一个类的对象的字段在初始化之后就不可改变的类我们叫做Immutable的类(当然,就算了字段全部指明为private final,并且没有setter方法,如果字段不详上面那样是String这种不可改变数值的类,仍然不是一个Immutable的类,因为getter会将字段的引用交给外部类)这种类的优点在于在高并发的条件下,不需要synchronized来保护,可以在不丧失安全性和生命性的前提下提高程序的执行性能。

参考链接:http://blog.csdn.net/sinat_23092639/article/details/52659780

2.3、Guarded Suspension(守卫暂停)

参考链接:http://blog.csdn.net/sinat_23092639/article/details/52892094

http://blog.csdn.net/alajl/article/details/1815982

2.4、消费者生产者模式(Customer-Product)

所谓生产者,就是产生数据的线程,消费者,就是使用数据的线程。两个线程的速度差将成为最大的问题,而该模式就是缓冲两者的速度差。一般来说,生产者和消费者会有多个。

1.将产生数据和使用数据两个流程分离解耦,让二者不互相依赖以至于相互影响,大家都靠缓冲区进行交互,这是一种好的设计方式。

就比如顾客吃蛋糕如果每次都要找到厨师拿,如果厨师换人了顾客就不认识了拿不到蛋糕了。

2.由于生产者与消费者是两个独立的并发体,他们之间是用缓冲区作为桥梁连接,生产者只需要往缓冲区里丢数据,就可以继续生产下一个数据,而消费者只需要从缓冲区了拿数据即可,这样就不会因为彼此的处理速度而发生阻塞。就比如顾客吃的速度比厨师做得快,这样顾客要吃蛋糕只能一直等待厨师而不能做其他事。同理,当厨师做蛋糕速度快过顾客吃的时候,顾客还没吃完,厨师就必须等顾客有人吃完才可以把蛋糕给他再回去做蛋糕。

参考链接:http://blog.csdn.net/sinat_23092639/article/details/53054114

2.5、Worker Thread(线程池)

所谓线程池,就是对线程的复用,当线程执行完任务之后就继续取其他任务执行,而不是销毁启动新线程执行其他任务。因为线程的启动对于系统性能开销比较大,所以这样对于系统性能的提高很有好处。

参考链接:http://blog.csdn.net/sinat_23092639/article/details/53148468

2.6、ReadWriteLock(读写锁)

并发包中有读写锁类ReadWriteLock,他的功能是使得当多个线程读和多个线程写同一块数据的情况下,允许多线程同时读,但是有线程在读的时候不允许写操作,只允许一个时刻只有一个线程在写,即读写互斥,写写互斥,读读不互斥。

参考链接:http://blog.csdn.net/sinat_23092639/article/details/53233722

2.7、Future Pattern(未来模式)

Future是这样一种Pattern: 它本身表示‘将来(future)’

你提交一个异步的任务 比如提交到一个threadpool

与此同时拿到一个Future对象 任务的执行是异步的

这时候你可以去做其它的事情 等到异步任务结束的时候 你可通过前面的Future对象拿到异步执行的任务的结果

异步执行结束后,自动通知用户异步任务结束了,你可以通过Future来获取执行结果了。

参考链接:http://blog.csdn.net/sinat_23092639/article/details/53353640

2.8、Active Object(主动对象)

一般来说是指自己拥有独立的线程的对象,在这里不只是拥有独立线程,还可从外部接受异步消息,并能配合需要返回处理结果。

参考链接:http://blog.csdn.net/sinat_23092639/article/details/53452970

参考链接:http://blog.csdn.net/sinat_23092639/article/details/53452970

关注微信公众号和今日头条,精彩文章持续更新中。。。。。

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
张兰人设崩塌?被曝给汪小菲暖房的家其实是一会所,难怪儿子发火

张兰人设崩塌?被曝给汪小菲暖房的家其实是一会所,难怪儿子发火

祝晓塬
2024-12-27 02:48:34
双色球第24149期中出6注一等奖,广东江苏揽1736万大奖,奖池22亿

双色球第24149期中出6注一等奖,广东江苏揽1736万大奖,奖池22亿

蓝色海边
2024-12-27 02:46:23
狼队角球直接攻破曼联球门!费迪南德发推:无语

狼队角球直接攻破曼联球门!费迪南德发推:无语

直播吧
2024-12-27 03:05:22
日本放宽中国人赴日签证:新设10年多次往返签!但整体诚意不大

日本放宽中国人赴日签证:新设10年多次往返签!但整体诚意不大

乌娱子酱
2024-12-26 13:56:16
如果不生孩子,老了真的会很可怜吗?看完网友的评论,感慨万千

如果不生孩子,老了真的会很可怜吗?看完网友的评论,感慨万千

有趣的火烈鸟
2024-12-26 05:51:10
作为东北人,上礼拜去了趟北京,为此郁闷不已,有几点疑问想不通

作为东北人,上礼拜去了趟北京,为此郁闷不已,有几点疑问想不通

涛哥美食汇
2024-12-25 20:29:49
国家监委主任作报告,武汉市政协原副主席陈邂馨等黑恶势力“保护伞”被点名

国家监委主任作报告,武汉市政协原副主席陈邂馨等黑恶势力“保护伞”被点名

政知新媒体
2024-12-26 08:42:21
祝贺国家一级演员何云伟老师,开拍电影《洪熙官》,好期待上线啊

祝贺国家一级演员何云伟老师,开拍电影《洪熙官》,好期待上线啊

晓徙历史
2024-12-24 14:44:21
乐坛最大的笑话,一首代表作都没的歌手,却敢当评委自称乐坛的神

乐坛最大的笑话,一首代表作都没的歌手,却敢当评委自称乐坛的神

简读视觉
2024-12-24 23:35:03
担任“一把手”14年的俞步松,主动投案

担任“一把手”14年的俞步松,主动投案

新京报政事儿
2024-12-26 11:03:40
全是“科技与狠活”,却狂卖14亿,这种甜牛奶,谁还在喝?

全是“科技与狠活”,却狂卖14亿,这种甜牛奶,谁还在喝?

毒sir财经
2024-07-25 23:59:38
人在退休后,不管谁邀请,牢记“2礼不随,2酒不喝”,都是现实

人在退休后,不管谁邀请,牢记“2礼不随,2酒不喝”,都是现实

由史
2024-12-25 18:02:18
果然没让中国人失望!一口气拉走我国1150辆坦克,全部用现金支付

果然没让中国人失望!一口气拉走我国1150辆坦克,全部用现金支付

常高俊April工作室
2024-12-23 13:58:12
斯诺克战报!5-1,5-4,小特火箭告捷,丁俊晖开门黑,小司机惜败

斯诺克战报!5-1,5-4,小特火箭告捷,丁俊晖开门黑,小司机惜败

刘姚尧的文字城堡
2024-12-26 09:58:17
目瞪口呆,原来他们是亲生父子,我不会是最后一个知道的吧?

目瞪口呆,原来他们是亲生父子,我不会是最后一个知道的吧?

素衣读史
2024-12-24 15:00:01
有8只猛犸象被困孤岛上,持续繁衍6000年,直到3650年前才灭绝

有8只猛犸象被困孤岛上,持续繁衍6000年,直到3650年前才灭绝

怪罗
2024-12-26 21:25:12
重庆一男子抛弃家庭5年,弟弟决定向嫂子求婚:让别人说去吧

重庆一男子抛弃家庭5年,弟弟决定向嫂子求婚:让别人说去吧

唐小糖说情感
2024-12-26 18:58:31
31岁河南卡友因疲劳驾驶去世!妻子癌症父亲尿毒症,房子在坟堆旁

31岁河南卡友因疲劳驾驶去世!妻子癌症父亲尿毒症,房子在坟堆旁

裕丰娱间说
2024-12-26 11:30:57
长荣,报应来了!一艘长荣货船,因不符合要求,已在港外停留一周

长荣,报应来了!一艘长荣货船,因不符合要求,已在港外停留一周

星辰故事屋
2024-12-26 17:18:24
昨日圣诞大战收视创近五年新高,湖勇大战是近五年观赛人数最多常规赛

昨日圣诞大战收视创近五年新高,湖勇大战是近五年观赛人数最多常规赛

雷速体育
2024-12-27 06:18:07
2024-12-27 06:44:49
非常美丽的句子12138
非常美丽的句子12138
每天分享有趣的视频
6063文章数 10254关注度
往期回顾 全部

科技要闻

小米正搭建GPU万卡集群,大力投入AI大模型

头条要闻

5名中国游客在挪威大巴车祸中受轻伤

头条要闻

5名中国游客在挪威大巴车祸中受轻伤

体育要闻

再见,中超最后的超级巨星

娱乐要闻

57岁王祖贤分享近照,状态太好又被质疑整容

财经要闻

69亿订单"消失",卓然股份隐藏了什么?

汽车要闻

新物种iCAR V23的“尤里卡时刻”

态度原创

房产
时尚
家居
教育
军事航空

房产要闻

富力地产子公司欠薪风波:年关将至!员工深陷困境,呼吁尽快解决

今年最好看的搭配竟然是基础款?这样穿高级又时髦

家居要闻

现代简约 提升温馨质感

教育要闻

附加题全班都栽了,老师说这题对四年级来说太难了

军事要闻

中方批菲防长涉华言论出格荒唐

无障碍浏览 进入关怀版