并发编程
C++并发编程
蜉蝣之羽,衣裳楚楚
虽千万人吾往矣
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Python 阻塞型I/O和GIL
GIL 几乎对 I/O 密集型处理无害CPython 解释器本身就不是线程安全的,因此有全局解释器锁(GIL), 一次只允许使用一个线程执行 Python 字节码。这是 CPython 解释器的局限,与 Python 语言本身无关。Jython 和 IronPython 没有这种限制。 不过,目前最快的 Python 解释器 PyPy 也有 GIL。标准库中所有执行阻塞型 I/O 操作的函数,在等待操作系统返回结果时都会释放GIL。这意味着在 Python 语言这个层次上可以使用多线 程,而 I原创 2021-01-23 21:54:23 · 363 阅读 · 0 评论 -
Python 使用future处理并发
Python标准库的两个Future1. concurrent.futures.Future2.asyncio.Future这两个类作用相同,都表示可能已经完成或尚未完成的延迟计算。future封装待完成的操作,可以放入队列,完成的状态可以查询,得到结果后可以获取结果。两种Future的几种常用方法:.done(),这个方法不阻塞,返回值是bool值,指明future连接的可调用对象是否已经执行 .adddonecallback(),这个方法只有一个参数,类型是可调用的对象,future运原创 2021-01-23 21:53:46 · 1439 阅读 · 0 评论 -
python 协程二
1 使用协程实现移动均值函数>>> from inspect import getgeneratorstate as gs>>> def mean_coroutine():... total = 0... count = 0... average = None... while True:... val = yield average... total += val... count += 1...原创 2021-01-02 15:10:17 · 164 阅读 · 0 评论 -
python 协程一
协程,又称微线程,纤程,英文名Coroutine。协程使用生成器定义:定义体中含有yield关键字>>> from inspect import getgeneratorstate # ①>>> def coroutine():... print("step one")... x = yield ... print("step two x value :", x)... &g原创 2021-01-02 15:06:43 · 197 阅读 · 1 评论 -
C++多线程二 向线程函数传递参数
thread对象第一个参数是函数或可调用对象,后面依次传入函数或可调用对象的n个参数 需要注意的是默认参数是拷贝到线程独立内存中 void update_data_for_widget(widget_id w, widget_data& data); // ① void oops_again(widget_id w) { widget_data data; std::thread t(update_data_for_widget, w, data); // ② disp原创 2021-01-01 14:20:16 · 537 阅读 · 0 评论 -
C++多线程一 启动/加入/分离线程
C++线程库启动线程,可以归结为构造std::thread对象 std::thread在头文件<thread> std::thread 可以用可调用(callable)类型构造 启动线程之后,要选择结束线程的方式,等待线程结束(加入式.join()),还是让其自主运行(分离式.detach)代码示例:struct func { int& i; func(int& i_) : i(i_) {} void operator() () { for (uns原创 2020-12-31 00:14:19 · 425 阅读 · 0 评论
分享