线程间通信

(1)      使用wait/notify实现线程间的通信

Wait()方法的作用是:使当前执行代码的线程进行等待,是object类的一个方法,该方法用来将当前线程置入预执行队列中,并且在wait()所在的代码行处停止执行,知道接到通知或被中断为止。

在调用wait()方法之前,线程必须获得该对象的对象级别的锁,即只能在同步方法或同步块中调用wait()方法。在执行wait()方法后,当前线程释放锁。

wait()方法可以是调用该方法的线程共享资源的锁,然后从运行状态退出,进入等待队列,直到被再次唤醒。

notify()方法也是在同步方法或同步块中调用,即在调用前,线程必须获得该对象的对象级别的锁。执行完该方法锁却不自动释放。

notify()方法可以唤醒等待队列中的等待同一个共享资源的一个线程,并使该线程退出等待队列,进入可运行状态,也就是notify()方法仅通知一个线程。

notifyAll()方法可以使所有正在等待队列中等待同一个共享资源的全部线程从等待状态退出,进入可运行状态。

总结wait和notify:wait使线程停止运行,而notify使停止的线程继续运行。

线程状态切换:

1)      新创建一个新的线程对象后,在调用它的start()方法,系统就会为此线程分配CPU的资源,是其处于Runnable(可运行)状态,这一个准备运行的阶段。若果线程强占到CPU资源,此线程就处于Running(运行)状态。

2)      Runnable状态和Running转态可相互切换,因为有可能线程运行一段时间后,有其它优先级的线程抢占到了CPU资源,这是线程就从Running状态变化Runnable转态。

线程进入Runnable状态大体分为如下情况

A:调用sleep()方法后经过的时间超过了指定的休眠时间

B:线程调用的阻塞IO已经返回,阻塞方法执行完毕

C:线程成功地获得了视图同步的监视器

D:线程正在等待某个通知,其它线程发出来了通知

E:处于挂起转态的线程调用了resume恢复方法

3)      Blocked阻塞,Blocked状态结束后,进入Runnable状态,等待系统重新分配资源。

出现Blocked状态大体分为如下情况

A:线程调用sleep()方法,主动放弃占用的处理器资源。

B:线程调用的阻塞IO方法,在该方法返回前,该线程被阻塞。

C:线程试图获得了一个视图同步的监视器,该同步监视器正被其他线程所持有。

D:线程正在等待某个通知。

E:程序调用suspend方法处于该方法将线程挂起,此方法容易导致死锁,尽量避免使用该方法。

4)      run()方法运行结束后进入销毁阶段,整个线程执行完毕。

(2)      方法join的使用

在很多情况下,主线程创建并启动子线程,如果子线程中要进行大量的耗时运算,主线程往往早于子线程之前结束。这时,如果主线程想等待子线程执行完之后在结束,比如子线程处理一个数据,主线程要取得这个数据中的值,就是要用jion()方法。

join()方法作用:等待线程对象销毁。具有使线程排队列运行的作用,有些类似同步的运行效果。

join和synchronized的区别:

jion在内部使用了wait()方法进行等待,而sychronized关键字使用的是对象监视器原理作为同步。

(3)      ThreadLocal类的使用

类TreadLocal主要解决的就是每个线程绑定自己的值,可以讲TreadLocal类比喻成全局存放数据的盒子,盒子中可以存储每个线程的私有数据。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
4S店客户管理小程序-毕业设计,基于微信小程序+SSM+MySql开发,源码+数据库+论文答辩+毕业论文+视频演示 社会的发展和科学技术的进步,互联网技术越来越受欢迎。手机也逐渐受到广大人民群众的喜爱,也逐渐进入了每个用户的使用。手机具有便利性,速度快,效率高,成本低等优点。 因此,构建符合自己要求的操作系统是非常有意义的。 本文从管理员、用户的功能要求出发,4S店客户管理系统中的功能模块主要是实现管理员服务端;首页、个人中心、用户管理、门店管理、车展管理、汽车品牌管理、新闻头条管理、预约试驾管理、我的收藏管理、系统管理,用户客户端:首页、车展、新闻头条、我的。门店客户端:首页、车展、新闻头条、我的经过认真细致的研究,精心准备和规划,最后测试成功,系统可以正常使用。分析功能调整与4S店客户管理系统实现的实际需求相结合,讨论了微信开发者技术与后台结合java语言和MySQL数据库开发4S店客户管理系统的使用。 关键字:4S店客户管理系统小程序 微信开发者 Java技术 MySQL数据库 软件的功能: 1、开发实现4S店客户管理系统的整个系统程序; 2、管理员服务端;首页、个人中心、用户管理、门店管理、车展管理、汽车品牌管理、新闻头条管理、预约试驾管理、我的收藏管理、系统管理等。 3、用户客户端:首页、车展、新闻头条、我的 4、门店客户端:首页、车展、新闻头条、我的等相应操作; 5、基础数据管理:实现系统基本信息的添加、修改及删除等操作,并且根据需求进行交流信息的查看及回复相应操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值