`

线程与进程的关系 ,Java 线程

 
阅读更多

                                       进程和线程的关系

 

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()方法。线程不能调用对象上等待或通知的方法,除非它拥有那个对象的锁。

 

 

分享到:
评论

相关推荐

    JAVA线程与进程的区别

    JAVA线程与进程的区别JAVA线程与进程的区别

    java多线程与进程调度

    java多线程与进程调度,针对多线程和进程的讲解

    73道Java面试题合集-多线程与进程

    73道Java面试题合集-多线程与进程

    java多线程笔记

    Java线程:概念与原理 2 一、操作系统中线程和进程的概念 2 二、Java中的线程 3 三、Java中关于线程的名词解释 3 四、线程的状态转换和生命周期 4 Java线程:创建与启动 7 Java线程:线程名称的设定及获取 10 Java...

    进程与线程_动力节点Java学院整理.

    Java 作为与平台无关的编程语言,必然会对底层(操作系统)提供的功能进行进一步的封装,以平台无关的编程接口供程序员使用,进程与线程作为操作系统核心概念的一部分无疑亦是如此。在 Java 语言中,对进程和线程的...

    用java编的适用于操作系统课程设计的线程-进程管理

    用java编的适用于操作系统课程设计的线程-进程管理

    java 多线程设计模式 进程详解

    《Java线程 高清晰中文第二版》中文第二版(PDF) 前言 第一章 线程简介 Java术语 线程概述 为什么要使用线程? 总结 第二章 Java线程API 通过Thread类创建线程 使用Runable接口的线程 线程的生命周期 线程命名 ...

    Java多线程编程经验

    比如java.exe进程中可以运行很多线程。线程总是属于某个进程,进程中的多个线程共享进程的内存。 “同时”执行是人的感觉,在线程之间实际上轮换执行。 本文档提供Java多线程编程经验,方便广大Java爱好者研究学习...

    java 查看JVM中所有的线程的活动状况

    java 查看JVM中所有的线程的活动状况 java 查看JVM中所有的线程的活动状况

    小java线程监控程序

    有点乐趣,小java线程监控程序, 小java线程监控程序 小java线程监控程序

    Java多线程编程指南

    Java 给多线程编程提供了内置的支持。 一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务。 多线程是多任务的一种特别的形式,但多线程使用了更小的资源开销。 ...

    Java 多线程 PPT

    Java 进程与线程 线程的概念模型 线程类 线程的同步与互斥

    java线程进程锁资源

    java线程进程锁资源111111

    输出java进程的jstack信息示例分享 通过线程堆栈信息分析java线程

    通过ps到java进程号将进程的jstack信息输出。jstack信息是java进程的线程堆栈信息,通过该信息可以分析java的线程阻塞等问题。

    java 线程详解及线程与进程的区别

    主要介绍了java 线程详解及线程与进程的区别的相关资料,网上关于java 线程的资料很多,对于进程的资料很是,这里就整理下,需要的朋友可以参考下

    Java线程详解.ppt

    一个进程中可以包含一个或多个线程,一个线程就是程序内部的一条执行线索。 在单线程中,程序代码按调用顺序依次往下执行,不能实现两段程序代码同时交替运行的效果。如果一个程序中要实现两段程序代码同时交替运行...

    Java并发编程进程和线程之由来Java开发Java经验技

    Java并发编程进程和线程之由来Java开发Java经验技巧共3页.pdf.zip

    操作系统中的进程、线程与Java的多线程.pdf

    操作系统中的进程、线程与Java的多线程

    Java_多线程与并发编程总结.doc

    对于一个进程中的多个线程来说,多个线程共享进程的内存块,当有新的线程产生的时候,操作系统不分配新的内存,而是让新线程共享原有的进程块的内存。因此,线程间的通信很容易,速度也很快。不同的进程因为处于不同...

    java多线程编程教程

    Java线程是Java语言中一个非常重要的部分,Java5之前,多线程的语言支持还是比较弱的,内容也较少,写一个复杂的多线程程序是相当有挑战性的。 在Java5以后,Java对多线程做了很多扩展,扩展部分称之为并发包。这...

Global site tag (gtag.js) - Google Analytics