搜集了一下资料,网上的说法众说纷纭;曾经以为进程、线程的问题搞得很清楚,现在感觉似乎有些复杂:

课本的说法:
进程是资源分配的基本单位;线程是系统调度的基本单位。
平时我们写的程序都是作为线程运行的;进程可以看做是包括一系列线程和资源的统称;一个进程至少包括一个
线程(主线程,进入main函数时产生的);在其中可以创建其它线程,也可以不创建。
同一进程间的线程究竟共享哪些资源呢,而又各自独享哪些资源呢?
共享的资源有
a. 堆  由于堆是在进程空间中开辟出来的,所以它是理所当然地被共享的;因此new出来的都是共享的(16位平台上分全局堆和局部堆,局部堆是独享的)
b. 全局变量 它是与具体某一函数无关的,所以也与特定线程无关;因此也是共享的
c. 静态变量 虽然对于局部变量来说,它在代码中是“放”在某一函数中的,但是其存放位置和全局变量一样,存于堆中开辟的.bss和.data段,是共享的
d. 文件等公用资源  这个是共享的,使用这些公共资源的线程必须同步。Win32 提供了几种同步资源的方式,包括信号、临界区、事件和互斥体。
独享的资源有
a. 栈 栈是独享的
b. 寄存器  这个可能会误解,因为电脑的寄存器是物理的,每个线程去取值难道不一样吗?其实线程里存放的是副本,包括程序计数器PC

多线程之间共享的资源有哪些相关推荐

  1. 多线程之间共享数据的实现

    1: 如果每个线程执行的代码相同,可以使用同一个Runnable对象,然后将共享的数据放在Runnable里面,来实现数据的共享. 例如买票系统... package com.cn.gbx;impor ...

  2. 如何在线程之间共享资源?

    点击"蓝字"关注Java高级部落! 介绍 当涉及IO读/写时,多线程可以提高应用程序性能.不幸的是,共享资源(共享变量)在每个CPU缓存中可以有不同的版本.结果是应用程序的行为无法 ...

  3. java:多线程的 共享资源冲突问题

    一,java中使用Thread类实现多线程. 1,如果有两以上的线程同时访问同一个共享资源,可能造成线程冲突,线程冲突会造成数据丢失.重复等严重问题. 以下通过两个线程同时访问同一个类,来表现线程冲突 ...

  4. android4.4 fragment,在Activity和多个Fragment之间共享资源

    在Activity和多个Fragment之间共享资源 Android Studio 默认生成的代码一般是这样的: package com.messy.lingplayer.playui import ...

  5. Java-如何解决多线程当中共享资源的冲突问题

    解决多线程当中共享资源冲突的问题 1. 冲突问题展示: /** 共享资源冲突的问题*/ class SingleThread implements Runnable {// 共享资源,100张票pri ...

  6. java多线程有几种实现方法_Java多线程之间实现通讯

    一.课程目标 多线程之间如何通讯 wait.notify.notifyAll()方法 lock 停止线程 守护线程 Join方法 优先级 Yield 二.多线程之间如何实现通讯 2.1 什么是多线程之 ...

  7. (四)Java中的多线程之间实现同步+多线程并发同步

    一.什么是线程安全问题 为什么有线程安全问题? 当多个线程同时共享同一个全局变量或静态变量,做写的操作(修改变量值)时,可能会发生数据冲突问题,也就是线程安全问题.但是做读操作时不会发生数据冲突问题. ...

  8. 12306是抢票原理分析-多线程之间实现同步

    理解线程安全? synchronized用法 死锁 Java内存模型 Vlolatile ThreadLock 什么是线程安全 当多个线程同时共享,同一个全局变量或者静态变量,做写得操作时,可能会发生 ...

  9. Java基础_17 | Java多线程程序设计(Java中两种创建线程的方法、多线程之间的同步和互斥)

    1. 多线程实现最核心的机制 一个程序在其执行过程中, 可以产生多个线程, 形成多条执行线索.,每条线程,有产生.存在和消亡的过程,并且独立完成各自的功能,互不干扰. 多线程程序运行只占用一个CPU, ...

最新文章

  1. python 无头模式 绕过检测_Python chrome 无头模式的问题
  2. BZOJ 3420: Poi2013 Triumphal arch
  3. Python炫技操作:模块重载的五种方法
  4. MySQL删除表及删除表数据操作
  5. 深入jvm学习(1)--体系结构
  6. djandgo model id
  7. memcpy函数的实现
  8. vue 相关技术文章集锦
  9. 不得不收藏的大数据Hadoop教程:Hadoop集群搭建
  10. mapreduce多路输出实例
  11. 强化学习总结(1)--EE问题
  12. 超全AD常用封装库,官方下载地址分享
  13. c#定时器Timer
  14. 防治计算机病毒微格教案反思,数字化微格教学实验室设备常见故障及处理方法...
  15. java 定时凌晨_Java定时任务,每天凌晨1点执行
  16. hill密码 java_希尔密码(Hill Cipher)的实现
  17. 什么是HTTP代理?
  18. 瀚高数据库并行导入导出
  19. Unity3D分离子物体解除父子关系/也可实现对子物体的删除
  20. file创建文件失败的问题

热门文章

  1. python 死循环程序能占满cpu吗_运行tensorflow python程序,限制对GPU和CPU的占用操作...
  2. html a标签去掉下划线_如何用HTML基本元素制作表格
  3. pannel添加的子窗体很大_超简单的地瓜粉焖子做法全解,零失败
  4. java 运行os文件路径_Java获取文件路径的几种方式
  5. python设置word背景色_Python数据可视化:WordCloud入门
  6. markdown 流程图_Markdown 进阶技能:用代码画流程图(编程零基础也适用)
  7. html5 video 播放状态,10分钟了解HTML5的Video标签属性、方法和事件
  8. 【渝粤题库】陕西师范大学200701 数字逻辑
  9. 【渝粤题库】陕西师范大学152208 公共危机管理
  10. mysql创建连接失败怎么办,MYSQL在Windows 2003上连接不上的解决方法