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

java进程和线程区别与不同。

一、定义

1.进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,是系统进行资源分配和调度的一个独立单位。

2.线程是进程的一个实体,是CPU调度和分派的基本单位,他是比进程更小的能独立运行的基本单位,线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如程序计数器,一组寄存器和栈),一个线程可以创建和撤销另一个线程;

进程和线程的关系:

(1)一个线程只能属于一个进程,而一个进程可以有多个线程,但至少有一个线程。

(2)资源分配给进程,同一进程的所有线程共享该进程的所有资源。

(3)线程在执行过程中,需要协作同步。不同进程的线程间要利用消息通信的办法实现同步。

(4)处理机分给线程,即真正在处理机上运行的是线程。

(5)线程是指进程内的一个执行单元,也是进程内的可调度实体。

线程与进程的区别:

(1)调度:线程作为调度和分配的基本单位,进程作为拥有资源的基本单位。

(2)并发性:不仅进程之间可以并发执行,同一个进程的多个线程之间也可以并发执行。

(3)拥有资源:进程是拥有资源的一个独立单位,线程不拥有系统资源,但可以访问隶属于进程的资源。

(4)系统开销:在创建或撤销进程的时候,由于系统都要为之分配和回收资源,导致系统的明显大于创建或撤销线程时的开销。但进程有独立的地址空间,进程崩溃后,在保护模式下不会对其他的进程产生影响,而线程只是一个进程中的不同的执行路径。线程有自己的堆栈和局部变量,但线程之间没有单独的地址空间,一个线程死掉就等于整个进程死掉,所以多进程的程序要比多线程的程序健壮,但是在进程切换时,耗费的资源较大,效率要差些。

线程的划分尺度小于进程,使得多线程程序的并发性高。

另外,进程在执行过程中拥有独立的内存单元,而多个线程共享内存,从而极大的提高了程序运行效率。

线程在执行过程中,每个独立的线程有一个程序运行的入口,顺序执行序列和程序的出口。但是线程不能够独立执行,必须依存在应用程序中,有应用程序提供多个线程执行控制。

从逻辑角度看,多线程的意义子啊与一个应用程序中,有多个执行部分可以同时执行。但操作系统并没有将多个线程看做多个独立的应用,来实现进程的调度和管理以及资源分配。这就是进程和线程的重要区别。

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

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

相关文章

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

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

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);

做最好的自己——读书笔记

精彩片段 谁都渴望成功,但似乎谁都摸不准成功的脉络;与其裹挟在追逐成功的大军里茫然前行,还不如冷静下来,自己跟自己比上一比。 有一天,这个学生问我:“开复博士,我希望自己能像您一样成功。根…

teleport最新版不支持mysql_QA · tp4a/teleport Wiki · GitHub

常见问题安装部署问题Q:使用MySQL数据库,有时重启teleport服务后工作不正常。A:Teleport内建支持SQLite,因此 /etc/init.d/teleport 启动脚本没有加入对mysqld服务的依赖,导致有时teleport服务先于mysqld服务启动&…

js Ajax跨域访问

-----------------------index.html<html><head><title>JQuery Ajax跨域访问</title><script src"jquery.js" type"text/javascript"></script><script type"text/javascript">$(function () {var oB…

拆分-洛谷P2745 [USACO5.3]窗体面积Window Area

https://www.luogu.org/problem/show?pid2745 本来因为会WA的&#xff0c;结果AC了&#xff0c;啊哈哈哈哈哈哈哈哈哈 因为题目要求我们要把一个个平面有先后关系&#xff0c;那么我们就搞一个队列嘛&#xff0c;每次询问时&#xff0c;不断把平面上升就好了&#xff1b; 但…

java搭建tcp客户端_【Java学习笔记】TCP客户端/服务器端

客户端&#xff1a;import java.net.Socket;import java.net.InetAddress;import java.net.UnknownHostException;import java.io.OutputStream;import java.io.BufferedReader;import java.io.InputStream;import java.io.InputStreamReader;import java.io.PrintWriter;impor…

SQLServer表分区

use Test--1分区函数CREATE PARTITION FUNCTION IDRange(int) AS RANGE LEFT FOR VALUES ( 99999999,199999999, 299999999) USE master--2然后我们需要添加相应的文件组 .我使用的是TestData文件组.ALTER DATABASE Test ADD FILEGROUP [TestData] ALTER DATABASE TestADD FILE…

Oracle集合查询

union&#xff1a;简单的返回查询检索出的所有行&#xff0c;但对重复行只返回一次 union all&#xff1a;返回查询检索的说有行&#xff0c;包括所有重复行 intersect&#xff1a;返回两个查询的共有行&#xff0c;即返回一次重复行 minus&#xff1a;返回第一个查询中去掉第二…

JAVA开发需求分析套路_JAVA并发工具常用设计套路示例代码

了解JAVA并发工具常用设计套路前言在学习JAVA并发工具时&#xff0c;分析JUC下的源码&#xff0c;发现有三个利器&#xff1a;状态、队列、CAS。状态一般是state属性&#xff0c;如AQS源码中的状态&#xff0c;是整个工具的核心&#xff0c;一般操作的执行都要看当前状态是什么…

使用PXE+VNC方式安装CentOS 7

U盘坏了&#xff0c;用个下面的方法安装 安装配置dhcp yum -y install dhcp tftp-server 修改如下&#xff0c;网段改为你自己的网段 vim /etc/dhcp/dhcpd.confsubnet 172.16.1.0 netmask 255.255.255.0 {range 172.16.1.100 172.16.1.200;option subnet-mask 255.255.255.0;de…

Oracle常见错误

///ORA-12520: TNS: 监听程序无法找到需要的服务器类型的可用句柄专用服务器选择了共享连接方式&#xff0c;修改(SERVER SHARED)为(SERVER DEDICATED)///ORA-12096,快照日志问题删除物化视图建的日志表DROP MATERIALIZED VIEW LOG ON [schema.]table;然后重建。///OracleExce…

Oracle DMP 导入导出

导出&#xff1a;运行-->输入cmd-->进入DOS环境-->输入命令&#xff1a;exp 用户名/密码数据库名 filexxx.dmp就可以实现数据库的导出了导入&#xff1a;CREATE USER username IDENTIFIED BY userpass;GRANT CREATE USER,DROP USER,ALTER USER ,CREATE ANY VIEW ,DRO…

Shell 自定义函数

语法&#xff1a; function fname() { 程序段} 例子&#xff1a; #!/bin/bash## 定义函数,分子除以分母&#xff0c;算利润、占有率等## 参数1&#xff1a;分子## 参数2&#xff1a;分母function divfun() {## 参数判断,需要输入两个参数 if [ $# -ne 2 ];thenecho "Enter…