windows和linux/unix多线程的区别

有一面试被问到了windows和linux多线程的区别,特地整理一下,内容全来自网络,如有错误请指正!

(1)WIN32里的进程/线程是继承自OS/2的。在WIN32里,“进程”是指一个程序,一般指一个软件,例如Chrome浏览器,但是Chrome会生成好几个后台进程(为了抢占cpu?),一个进程里包含多个线程,用来执行不同的任务,例如Chrome各个不同网页的刷新。WIN32里同一个进程里各个线程之间是共享数据段的,这是与linux系统重要的不同。

(2)但是linux系统几乎可以说是没有线程的概念,所有的程序都以进程对待,而由程序员来显式地指定要共享的数据,从这里看linux似乎更安全一些。

(3)Linux下的进程是动态的,Windows下的进程是静态的。Windows下的进程只是一“壳子”,系统真正执行的还是线程。

时间: 2024-11-03 20:48:36

windows和linux/unix多线程的区别的相关文章

windows和linux换行规则的区别

在计算机还没有出现之前,有一种叫做电传打字机(Teletype Model 33)的玩意,每秒钟可以打10个字符.但是它有一个问题,就是打完一行换行的时候,要用去0.2秒,正好可以打两个字符.要是在这0.2秒里面,又有新的字符传过来,那么这个字符将丢失. 于是,研制人员想了个办法解决这个问题,就是在每行后面加两个表示结束的字符.一个叫做"回车"(Carriage Return),告诉打字机把打印头定位在左边界:另一个叫做"换行"(Linefeed),告诉打字机把纸向

Linux/Unix 多线程通信

线程间无需特别的手段进行通信,因为线程间可以共享数据结构,也就是一个全局变量可以被两个线程同时使用. 不过要注意的是线程间需要做好同步,一般用 mutex. 可以参考一些比较新的 UNIX/Linux 编程的书,都会提到 Posix 线程编程,比如<UNIX环境高级编程(第二版)>.<UNIX系统编程>等等. Linux 的消息属于 IPC,也就是进程间通信,线程用不上. 使用多线程的理由之一是和进程相比,它是一种非常"节俭"的多任务操作方式. 我们知道,在 L

sedna在windows和Linux下的xquery区别

源用昨天的例子,把book.xml加载入books数据库的名为novel的collection里. <books> <book> <name>The Call Of Wild</name> <author>Jack London</author> <price>32.5$</price> <date>2015-7-6</date> </book> <book> &

[转帖]Windows和Linux对决(多进程多线程)

Windows和Linux对决(多进程多线程) https://blog.csdn.net/world_2015/article/details/44920467 太长了 还没看完.. 还是没太理解好呢.. 关于 windows 和 linux的东西 先放这里 晚上有时间仔细啃一下. 并行程序设计分为共享内存和消息驱动(其实就是分布式内存)两种, 共享内存:所有CPU共内存,所有CPU由一个操作系统控制的,例如Windows和Linux/UNIX,目前流行的多核.多CPU机器都是属于这种: 消息

spring cloud 打成jar包在Windows或者Linux上运行的

整理一下关于Spring Boot后台运行的一些配置方式.在介绍后台运行配置之前,我们先回顾一下Spring Boot应用的几种运行方式 1:运行Spring Boot的应用主类2:使用Maven的Spring Boot插件mvn spring-boot:run来运行3:打成jar包后,使用java -jar运行 我们在开发的时候,通常会使用前两种,而在部署的时候往往会使用第三种.但是,我们在使用java -jar来运行的时候,并非后台运行.下面我们分别针对Windows和Linux/Unix两

Windows 和 Linux 中的换行与回车的区别,Windows下编写的Shell脚本,直接放到linux/unix下执行会报错

首先: CR(Carriage Return)表示回车 LF(Line Feed)表示换行 Dos和Windows采用回车+换行(CR+LF)表示下一行而UNIX/Linux采用换行符(LF)表示下一行苹果机(MAC OS系统)则采用回车符(CR)表示下一行 Windows下编写的Shell脚本,直接放到linux/unix下执行会报错,就是因为行结束符不一样导致的. 现在好多文本工具都提供了转换功能,如我常用的,也是最强大的工具 (个人感受,不是打广告):notepad++. 原文地址:htt

socket在windows下和linux下的区别

windows到Linux代码移植遇到的问题 1.一些常用函数的移植 http://www.vckbase.com/document/viewdoc/?id=1586 2.网络 ------ 转载 & 修改(待整理) socket相关程序从windows移植到linux下需要注意的 1)头文件 windows下winsock.h/winsock2.h linux下sys/socket.h 错误处理:errno.h 2)初始化 windows下需要用WSAStartup linux下不需要 3)关

Windows Socket和Linux Socket编程的区别 ZZ

socket相关程序从Windows移植到Linux下需要注意的: 1)头文件 Windows下winsock.h/winsock2.h Linux下sys/socket.h 错误处理:errno.h 2)初始化 Windows下需要用WSAStartup Linux下不需要 3)关闭socket Windows下closesocket(...) Linux下close(...) 4)类型 Windows下SOCKET Linux下int 如我用到的一些宏: #ifdef WIN32 typed

Linux文件和windows文件在 换行符的区别

Linux或Unix文件,和windows文件,在来回处理时,如果不注意 换行符的区别,可能导致程序错误!!!深刻的教训.... 在早期的打印机时代,开始新的一行要占用两个字符的时间.如果到了一行的结尾处,你要快速回到新的一行的开头,需要打印针头在纸面上飞快地掠过,常常会在纸面上留下污点.解决这个问题的办法就是,用两个字符:一个字符<Return>来移到第一列,另一个字符<Line feed>来新增一行.计算机产生以后,存储较为昂贵,在如何解决回车换行这个老问题上,人们产生了不同的