[VRclassroom开发之三]java聊天室中服务器主动向所有用户发送系统消息

这些天一直在研究java的多线程机制,中间小总结一下。

java多线程中主要概念有任务、线程、gui事件分发线程、多线程、线程池、

1.任务:实现Runnable接口的类,并重写run()方法实现任务。

2.线程:一般通过以任务实例为参数的Thread构造函数创建线程实例。Thread myTask = new Thread(myWork);

(虽然可以直接通过继承Thread类创建线程类进而创建线程实例,但推荐使用这种方法,可将任务和线程分离)

3.gui事件分发线程:gui的事件处理和绘图代码均在 事件分发线程 这个单一线程中执行。可以通过

public static void invokeLater(Runnable doRun) 

把任务加入到事件分发线程中执行,可以确保不发生死锁。

4.多线程并发执行:为及时响应、提高资源利用率(并发性的优点),可以为长期执行的任务、经常由于资源欠缺处于阻塞态的任务单独创建线程。

例如:在Swing图形化编程时,当点击按钮触发一个长期执行的任务时,再点击其他控件时,程序会没有任何反应直到此任务结束。

5.线程池:单个任务创建单个线程用Thread类,为大量任务创建线程应该用线程池。

public static ExecutorService newCachedThreadPool()
public static ExecutorService newFixedThreadPool(int nThreads)

6.线程同步:防止多个进程同时访问共享数据,通过同步方法、同步语句、加“显性锁”防止出现资源冲突,保证线程安全

7.线程间协作:“条件锁”实现。

╮(╯▽╰)╭,还是不会写博客。。。

 
原文地址:https://www.cnblogs.com/wanping/p/2405122.html