java进程和线程_Java™ 教程(进程和线程)

并发

计算机用户想当然地认为他们的系统一次可以做不止一件事,他们设想他们可以继续在文字处理器中工作,而其他应用程序则下载文件、管理打印队列和流音频,即使是单个应用程序通常也希望一次完成多个任务。例如,流式音频应用程序必须同时从网络上读取数字音频、解压缩、管理回放并更新其显示,甚至文字处理器应始终准备好响应键盘和鼠标事件,无论重新格式化文本或更新显示有多繁忙,可以执行此类操作的软件称为并发软件。

Java平台的设计初衷是为了支持并发编程,在Java编程语言和Java类库中提供基本的并发支持,从5.0版开始,Java平台还包含高级并发API,本课程介绍了平台的基本并发支持,并总结了java.util.concurrent包中的一些高级API。

进程和线程

在并发编程中,有两个基本的执行单元:进程和线程,在Java编程语言中,并发编程主要涉及线程,但是,进程也很重要。

计算机系统通常具有许多活动进程和线程,即使在只有单个执行核心的系统中也是如此,因此在任何给定时刻只有一个线程实际执行,单个核心的处理时间通过称为时间切片的OS功能在进程和线程之间共享。

对于具有多个处理器或具有多个执行核心的处理器的计算机系统变得越来越普遍,这极大地增强了系统并发执行进程和线程的能力 — 但即使在没有多个处理器或执行核心的简单系统上,并发也是可能的。

进程

进程具有独立的执行环境,进程通常具有完整的私有基本运行时资源集,特别是,每个进程都有自己的内存空间。

进程通常被视为程序或应用程序的同义词,但是,用户看作的单个应用程序实际上可能是一组协作进程,为了促进进程之间的通信,大多数操作系统都支持进程间通信(IPC)资源,例如管道和socket,IPC不仅用于同一系统上的进程之间的通信,还用于不同系统上的进程。

Java虚拟机的大多数实现都作为单个进程运行,Java应用程序可以使用ProcessBuilder对象创建额外进程,多进程应用程序超出了本课程的范围。

线程

线程有时被称为轻量级进程,进程和线程都提供执行环境,但创建新线程所需的资源比创建新进程要少。

线程存在于进程中 — 每个进程至少有一个线程,线程共享进程的资源,包括内存和打开文件,这使高效但可能有问题的通信。

多线程执行是Java平台的基本特性,每个应用程序至少有一个线程 — 或几个,如果你计算执行内存管理和信号处理等任务的“系统”线程的话。但是从应用程序员的角度来看,你只从一个线程开始,称为主线程,该线程具有创建额外线程的能力,我们将在下一节中进行演示。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/417354.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C++ 中关于optional 使用过程中遇到的问题

头文件&#xff1a;#include <boost/optional.hpp> using namespace boost; optional很像一个仅能存放一个元素的容器&#xff0c;它实现了"未初始化"的概念&#xff1a;如果元素未初始化&#xff0c;那么容器就是空的&#xff0c;否则&#xff0c;容器内就是有…

java config 类_Spring ----JavaConfig类代替XML配置Bean

1.使用JavaConfig实现Bean对象创建&#xff1a;通过Spring ApplicationContext的另一个容器AnnotationConfigurationApplicationContext的实现类ApplicationContext ac  new AnnotationConfigurationApplicationContext(“包名|配置类|bean工厂&#xff1f;”) 依赖工厂&a…

SQLServer 生成当前日期备份

DECLARE DataBase NVARCHAR(64)DECLARE strDate NVARCHAR(64)DECLARE strPath NVARCHAR(512)--备份采集配置数据库use TestDBSET DataBaseTestDBset strPathE:\数据库备份\set strDate convert(NVARCHAR(19),getdate(),120)set strDate REPLACE(strDate, : , )set strDate R…

白话经典算法系列之一 冒泡排序的三种实现

http://blog.csdn.net/morewindows/article/details/6657829 冒泡排序是非常容易理解和实现&#xff0c;&#xff0c;以从小到大排序举例&#xff1a; 设数组长度为N。 1&#xff0e;比较相邻的前后二个数据&#xff0c;如果前面数据大于后面的数据&#xff0c;就将二个数据交…

java 读取csv_Java读取CSV的常用方法 | 学步园

在项目开发中&#xff0c;我们经常需要读取csv的内容的操作。读取的逻辑并不复杂。主要是对有换行的&#xff0c;逗号&#xff0c;引号的处理恰当的话就没问题了。下面作为memo&#xff0c;把在项目中的读取方法拷贝了过来。有了下面的这些方法&#xff0c;在CSV的读取和输出的…

判断两颗树是否相同

tag: 二叉树 package com.zhaochao.tree;import java.util.Stack;/*** Created by zhaochao on 17/1/24.* 两颗树相等&#xff0c;意味着 对应节点的值相等&#xff0c;且具备相同的左右子树*/ public class JudgeSameTree {//recursion public boolean isSame(TreeNode rootA,…

C# XML格式化显示

/// <summary>/// XML格式化为文本显示/// </summary>/// <param name"str"></param>/// <returns></returns>public static string ShowXml(string str){MemoryStream mstream new MemoryStream();XmlTextWriter writer new …

C# CKEditor、CKFinder集成使用

1.裁剪&#xff08;ckeditor在\_Samples\ckeditor中&#xff09;2.添加引用&#xff1a;CKEditor.NET.dll、CKFinder.dll3.配置CKEditor&#xff1a;ckeditor/config.jsCKEDITOR.editorConfig function (config) {config.skin office2003;};4.使用CKEditor&#xff1a;<% …

tcp/ip四层和osi七层

转载于:https://www.cnblogs.com/mountian-lion/p/6353819.html

java的进程和线程_java进程和线程区别与不同

java进程和线程区别与不同。一、定义1.进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动&#xff0c;是系统进行资源分配和调度的一个独立单位。2.线程是进程的一个实体&#xff0c;是CPU调度和分派的基本单位&#xff0c;他是比进程更小的能独立运行的基本单位&…

【网络流24题----09】方格取数问题

问题描述&#xff1a;在一个有m*n 个方格的棋盘中&#xff0c;每个方格中有一个正整数。现要从方格中取数&#xff0c;使任意2 个数所在方格没有公共边&#xff0c;且取出的数的总和最大。试设计一个满足要求的取数算法。编程任务&#xff1a;对于给定的方格棋盘&#xff0c;按…

split 中文 java_Java String[] split() 方法

public class Test {public static void main(String args[]) {String str new String("Welcome-to-Itizixishi");System.out.println("- 分隔符返回值 :" );for (String retval: str.split("-")){System.out.println(retval);}System.out.prin…

C# JScript.Eval使用

using Microsoft.JScript;using Microsoft.JScript.Vsa;VsaEngine ve VsaEngine.CreateEngine();object obj Eval.JScriptEvaluate("(" strIn ")", ve);