博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
进程&线程 同步异步&阻塞非阻塞
阅读量:6012 次
发布时间:2019-06-20

本文共 761 字,大约阅读时间需要 2 分钟。

2015-08-19 15:23:38 周三

如果你的代码所在的进程中有多个线程在同时运行,而这些线程可能会同时运行这段代码

线程安全问题都是由全局变量及静态变量引起的

若每个线程中对全局变量、静态变量只有读操作,而无写操作,一般来说,这个全局变量是线程安全的;若有多个线程同时执行写操作,一般都需要考虑线程同步,否则就可能影响线程安全

线程安全就是多线程访问时,采用了加锁机制,当一个线程访问该类的某个数据时,进行保护,其他线程不能进行访问直到该线程读取完,其他线程才可使用

线程不安全就是不提供数据访问保护,有可能出现多个线程先后更改数据造成所得到的数据是脏数据

一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并行多个线程,每条线程并行执行不同的任务

线程和进程的区别在于,子进程和父进程有不同的代码和数据空间,而多个线程则共享数据空间,每个线程有自己的执行堆栈和程序计数器为其执行上下文

join();可以用来邀请其他线程先执行

yield();告诉系统"把自己的CPU时间让掉,让其他线程或者自己运行"

1. 同步,就是我调用一个功能,该功能没有结束前,我死等结果。
2. 异步,就是我调用一个功能,不需要知道该功能结果,该功能有结果后通知我(回调通知)
3. 阻塞,      就是调用我(函数),我(函数)没有接收完数据或者没有得到结果之前,我不会返回。
4. 非阻塞,  就是调用我(函数),我(函数)立即返回,通过select通知调用者

 

同步IO和异步IO的区别就在于:数据拷贝的时候进程是否阻塞!

阻塞IO和非阻塞IO的区别就在于:应用程序的调用是否立即返回!

 

:

所谓I/O多路复用机制,就是说通过一种机制,可以监视多个描述符,一旦某个描述符就绪(一般是读就绪或者写就绪),能够通知程序进行相应的读写操作

转载地址:http://gkrmx.baihongyu.com/

你可能感兴趣的文章
MySQL安装、备份与恢复思维导图
查看>>
cocos2d-x CCSprite 精灵监听点击事件
查看>>
开始→运行→命令集锦
查看>>
免费下载 !微软 Visual Studio 2013 and ASP.NET MVC 5 新特性体验课程
查看>>
测试字符串写入类: TStringWriter
查看>>
我的友情链接
查看>>
TP框架中D方法与M方法的区别
查看>>
haproxy是如何工作的?
查看>>
biji-linux
查看>>
从VMware ESX Server 4升级到ESXi 5
查看>>
分布式测试-代码动态加载运行功能完成
查看>>
obj-c搜索子字符串
查看>>
python中的__name__ == "__main__"
查看>>
基于gevent和pymysql实现mysql读写的异步非堵塞方案
查看>>
收集Linux常用命令,万年更新
查看>>
1、springboot学习推荐
查看>>
FreeMarker自定义标签select
查看>>
java.lang.Void
查看>>
PL/SQL Developer 9 延长试用期
查看>>
Rust基础笔记之浅谈Ownership
查看>>