请选择 进入手机版 | 继续访问电脑版
搜索
房产
装修
汽车
婚嫁
健康
理财
旅游
美食
跳蚤
二手房
租房
招聘
二手车
教育
茶座
我要买房
买东西
装修家居
交友
职场
生活
网购
亲子
情感
龙城车友
找美食
谈婚论嫁
美女
兴趣
八卦
宠物
手机

Java多线程系列——线程间通信

[复制链接]
查看: 36|回复: 0

1万

主题

2万

帖子

4万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
48026
发表于 2019-12-2 23:31 | 显示全部楼层 |阅读模式
Java多线系列文章是Java多线程的详解先容,对多线程还不熟悉的同学可以先去看一下我的这篇博客Java根柢系列3:多线程超具体总结,这篇博客从宏观层面先容了多线程的团体概况,接下来的几篇文章是对多线程的深入分析。

线程是操纵系统中自力的个体,但这些个体假如不经过特此外处置惩罚就不能成为一个团体。线程间的通讯就是成为团体的必用计划之一,可以说,使线程间举行通讯后,系统之间的交互性会更强大,在大猛进步CPU利用率的同时还会使步伐员对各线程使命在处置惩罚的进程及第行有用的把控与监视。

线程运转状态

Java多线程系列——线程间通信  游戏 1058428-20191202141832176-47666054




1)新建立一个新的线程工具后,再挪用它的start()方式,系统会为此线程分派CPU资本,使其处于Runnable(可运转)状态,这是一个预备运转的阶段。假如线程抢占到CPU资本,此线程就处于Running(运转)状态。  
2)Runnable状态和Running状态可相互切换,由于有大要线程运转一段时候后,有其他高优先级的线程抢占了CPU资本,这时此线程就从Running状态酿成Runnable状态。线程进入Runnable状态大要分为以下5种情况:

  • 挪用sleep()方式后经过的时候超出了指定的休眠时候。
  • 线程挪用的阻塞I0已经返回,阻塞方式实行终了。
  • 线程乐成地获得了试图同步的监视器。
  • 线程正在期待某个看护,其他线程发出了看护。
  • 处于挂起状态的线程挪用了resume规复方式。
3)Blocked是阻塞的意义,例如碰到了一个IO操纵,此时CPU处于余暇状态,大要会转而把CPU时候片分派给其他线程,这时也可以称为“停息”状态。Blocked状态竣事后,进入Runnable状态,期待系统重新分派资本。出现阻塞的情况有以下几种:

  • 线程挪用sleep()方式,自动放弃占用的处置惩罚器资本。
  • 线程挪用了阻塞式IO方式,在该方式返回前,该线程被阻塞。
  • 线程试图获得一个同步监视器,但该同步监视器正被其他线程所持有。
  • 线程期待某个看护。
  • 步伐挪用了suspend方式将该线程挂起。此方式轻易致使死锁,尽管束止利用该方式。
4)run()方式运转竣事落后入烧毁阶段,全部线程实行终了。
每个锁工具都有两个行列,一个是停当行列,一个是阻塞行列。停当行列存储了将要获得锁的线程,阻塞行列存储了被阻塞的线程。一个线程被叫醒后,才会进入停当行列,期待CPU的调节;反之,一个线程被wait后,就会进入阻塞行列,期待下一次被叫醒。


期待与看护机制

一、倒霉用期待看护机制实现线程间通讯:

我们先倒霉用期待看护机制来看下怎样实现线程间的通讯:
[code]import java.util.ArrayList;import java.util.List;class MyList{        private List list=new ArrayList();        public void add() {                list.add("小马");        }                public int size() {                return list.size();        }}class ThreadA extends Thread{        private MyList list;                public ThreadA(MyList list) {                this.list=list;        }                @Override        public void run() {                try {                        for(int i=0;i

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Copyright © 2006-2014 妈妈网-中国妈妈第一,是怀孕、育儿、健康等知识交流传播首选平台 版权所有 法律顾问:高律师 客服电话:0791-88289918
技术支持:迪恩网络科技公司  Powered by Discuz! X3.2
快速回复 返回顶部 返回列表