首页 >

Java中如何用Thread类实现多线程? – 网络|

虚拟机的oracle怎么改密码,寻找网络安全感英语怎么说,java怎么使用网页内容Java中如何用Thread类实现多线程? - 网络|Java中如何用Thread类实现多线程

其实Java中实现多线程的方式有三种方式继承Thread类,实现Runnable接口、实现Callable接口。

前两种没有返回值,后一种带返回值。说到多线程就把线程相关的都说下。

2、什么是线程

进程是指一个内存中运行的应用程序,每个进程都有自己独立的一块内存空间,而多个线程共享进程申请的内存。

一个进程中可以启动多个线程。比如java运行一个程序就会启动一个进程,进程至少会启动main线程和垃圾回收线程。

线程总是属于某个进程,与进程内的其他线程一起共享分配给该进程的所有资源,但是线程有自己独立的栈。

Java的线程又分为普通线程和守护线程,像垃圾回收线程就是守护线程。

3、线程的状态

new:线程对象已经创建,还没有调用start方法;

runnablestart0方法调用时,线程进入该状态。wait/block/sleep/running也会转到该状态;

runningrunnable的线程执行就会进入该状态

休眠状态:包括wait/blocksleep,线程因为某个条件不再执行了,但是等待某个件事件出现,可能返回到runnable状态

dead:异常或者run方法执行完成达到的状态

4、线程同步

既然是多线程,就要注意线程安全问题。

解决线程安全问题,就需要加锁。Java提供了synchronized和lock来实现线程同步的问题(Lock的实现这里就不说了,后面可以分享下)。

5、线程通信

Object的wait/notify方法,Condition的await和signal方法,BlockingQueue的实现类,

concurrent包下面的Semaphore、CyclicBarrierCountDownLatch都可以实现线程通信,这里就不详解了

6、线程池

线程池可以参考偶分享的关于ThreadPoolExecutor的文章

7、其他

ThreadLocalvolatile这两个东西也是线程使用经常需要的,大家可以了解下

基本上线程使用的就这些,希望对你有帮助。

可以关注偶,后续会把涉及到的知识点通过源码的方式分析下。



Java中如何用Thread类实现多线程? - 网络|
  • 谭浩强的c语言程序设计学习C语言必备经典教材 - 网络|
  • 谭浩强的c语言程序设计学习C语言必备经典教材 - 网络| | 谭浩强的c语言程序设计学习C语言必备经典教材 - 网络| ...

    Java中如何用Thread类实现多线程? - 网络|
  • amdzen3何时出入门级桌面cup? - 网络|
  • amdzen3何时出入门级桌面cup? - 网络| | amdzen3何时出入门级桌面cup? - 网络| ...

    Java中如何用Thread类实现多线程? - 网络|
  • 王安石、秦桧、高俅他们见过吗? - 网络|
  • 王安石、秦桧、高俅他们见过吗? - 网络| | 王安石、秦桧、高俅他们见过吗? - 网络| ...