我想在Java中知道:在Java中,如果一个线程死亡,另一个线程会发生什么?
- 如果主线程被杀了会发生什么其他的孩子线程?
- 如果子线程被杀死了兄弟和父线程会发生什么?
我看了下面的链接,因为线程共享地址空间,杀死一个线程也会影响其他线程。
以下是here的报价。
线程是轻量级进程,它将主要控制流分成多个流,并且每个控制/线程流将独立执行。系统中进程的活动由线程表示。具有多个线程的进程称为多线程。每个线程都有自己的线程ID(数据类型整数),寄存器,程序计数器,堆栈,错误号。线程可以在同一进程中使用共享内存进行通信。 使用线程来管理和维护应用程序的子任务有不同的优势。当我们使用线程时,系统资源被用于上下文切换,并增加了应用程序的吞吐量。线程也简化了程序的结构。任务之间没有专门的通信机制。 线程也有一些缺点,例如线程不可重用,因为它们依赖进程并且不能与进程分离。线程不是孤立的,因为它们没有自己的地址空间。线程的错误原因可能会终止整个进程或程序,因为该错误会影响该进程或程序中使用的所有线程的整个内存空间。由于线程在共享资源的过程中也可能影响整个进程或程序受到线程资源损害的时间。对于并发读写访问内存线程将需要同步。进程的数据很容易被线程通过数据竞争破坏,因为进程中的所有线程都有对同一段数据的写访问权限。
u能吉欧斯请告诉无论是否在上面的链接告诉适用于Java的
感谢您的快速回复。我对第二点有一个疑问。我在以下链接中看到,由于共享地址空间的线程,杀死一个线程也会影响其他线程。等待您的回复 http://www.blurtit.com/q236205.html – nantitv
A)当说“线程也简化了程序的结构*”时,这种咆哮是完全错误的,并且之后它没有声明可以修复那些可怜的东西句子。 B)我不认为它适用于Java。 C)不要明确杀死线程(通过使用Thread.stop)。 Thread.stop方法由于很好的原因而被弃用。 – aioobe
线程可帮助程序在同一时间管理不同的任务。 Thread.stop()方法已被弃用,因为它是不安全的(想想如果线程正在管理一些重要的数据)。最好在run()方法中用布尔条件将其停止在while循环中。 –