2016 - 2024

感恩一路有你

java多线程怎么解决数据共享 Java中如何用Thread类实现多线程?

浏览量:1260 时间:2023-05-27 23:44:20 作者:采采

Java中如何用Thread类实现多线程?

1.回答你的问题,继承Thread类调用start方法实现多线程。

其实Java实现多线程有三种继承Thread类,实现Runnable接口和Callable接口。

前两个没有返回值,后一个有返回值。说到多线程,让 让我们来谈谈线程。

2.什么是线程?

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

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

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

Java线程分为普通线程和守护线程,比如垃圾收集线程。

3、线程的状态

新的:线程对象已创建,但尚未调用start方法。

当调用runnable start0方法时,线程进入这种状态。等待/阻塞/睡眠/运行也会进入这种状态。

运行可运行线程执行将进入这种状态。

睡眠状态:包括等待/阻塞睡眠。由于某种条件,线程不再被执行,但在等待事件出现时,可能会返回到可运行状态。

Dead:异常或执行run方法所达到的状态。

4.线程同步

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

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

5.线程通信

Wait/notify method of target, wait and signal method of condition, implementation class of blocking queue,

并发包下的Semaphore和CyclicBarrier CountDownLatch能否实现线程通信,这里就不清楚了。

6.线程池

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

7.其他人

ThreadLocal volatile这两个东西也是线程经常需要用到的,可以了解一下。

基本上,那 的所有线程使用,希望对你有所帮助。

你可以关注我,然后你会通过源代码分析其中涉及的知识点。

实现线程库的两种不同方法?

java多线程的两种方法也有细微的区别!继承thread类实现runnable接口(注意:共享数据时实现runnable接口,thread类不支持)。

线程 方法 多线程 状态 进程

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。