线程与进程的联系 ,Java 线程mingxing - AG环亚娱乐

线程与进程的联系 ,Java 线程mingxing

2019-02-09 09:34:57 | 作者: 寄琴 | 标签: 线程,进程,办法 | 浏览: 3859

 

1. 一个 线程只能归于一个进程,一个进程能够有多个线程,但至少有一个线程。

2. 资源分配给进程,同一进程的一切线程同享进程中的一切资源。

3. 处理机分配给线程, 真正在处理机上运转的是线程。

4. 线程在履行中需求同步协作,不同的进程的线程间要运用音讯通讯的办法完结同步。

 

java 线程

线程脱离运转状况的办法

1. 调用 Thread.sleep() 办法,使当时线程睡觉 至少。。毫秒。(虽然它可能在到达睡觉时刻前被中止)

2. Thread.yield(),不能保证,它可能使当时线程回到可运转状况,使其它同优先级的线程有时机履行。

3. 调用join() 办法,保证当时线程中止履行,直到该线程参加的线程履行完结中止,然后,假如参加的线程没有存活,则当时线程不需求中止。

 

线程同步与锁

一、同步问题的提出

线程的同步是为了避免多个线程拜访一个数据目标时,对数据形成的损坏。

 

二、何时需求同步

在多个线程一起拜访互斥(可交换)数据是,应该同步以维护数据,保证两个线程不会一起修正更改它。

关于非静态字段中可更改的数据,一般运用非静态办法拜访。

关于静态字段中可更改的数据,一般运用静态办法拜访。

 

三、java 线程交互

void notify() 唤醒在此目标监视器上等候的单个线程。

void notifyAll()     唤醒在此目标监视器上等候的一切线程。

void vait()   导致当时的线程等候,直到其他的线程调用此目标的notify()办法或notifyAll() 办法。

当然wait() 还有别的两个重载办法:

void wait(long timeout)  导致当时的线程等候,直到其他线程调用此目标的notity办法或notifyAll()办法,或许超越指定的时刻量。
void wait(long timeout, int nanos) 导致当时的线程等候,直到其他线程调用此目标的notify() 办法或notifyAll()办法, 或许其他某个线程中止当时线程,或许已超越摸个实践时刻量。

关于等候/告诉,要记住的要害点是:

有必要从同步环境内调用wait()\ notify()\notifyAll()办法。线程不能调用目标上等候或告诉的办法,除非它具有那个目标的锁。

 

 

版权声明
本文来源于网络,版权归原作者所有,其内容与观点不代表AG环亚娱乐立场。转载文章仅为传播更有价值的信息,如采编人员采编有误或者版权原因,请与我们联系,我们核实后立即修改或删除。

猜您喜欢的文章