一.java内存模型 1.线程通信机制 1.共享内存 共享内存这种方式比较常见,我们经常会设置一个共享变量。然后多个线程去操作同一个共享变量。从而达到线程通讯的目的。例如,我们使用多个线程去执行页面抓取任务,我们可以使用一个共享变量count来记录任务完成的数量。每当一个线程完成抓取任务,会在原来的 ...
分类:
其他好文 时间:
2020-06-14 15:11:37
阅读次数:
56
摘要 join()函数的作用是让主线程的等待该子线程完成,然后主线程再继续执行。这种情况下,子线程可以安全的访问主线程中的资源。一个子线程只能调用join()和detach()中的一个,且只允许调用一次。可以调用joinable()来判断是否可以成功调用join()或detach()。 1 #inc ...
分类:
编程语言 时间:
2020-06-06 16:55:37
阅读次数:
74
摘要 子线程在创建时启动。 线程关联的可调对象可以是:普通函数、仿函数对象、Lambda表达式、成员函数。 示例 普通函数 1 #include <thread> 2 #include <iostream> 3 4 using namespace std; 5 6 void test() 7 { 8 ...
分类:
编程语言 时间:
2020-06-06 12:40:20
阅读次数:
66
页面上单线程执行的javascript是主线程(我们通常写的javascript都在主线程中执行),new出来的web worker对象为子线程,只有主线程中的代码执行时会导致阻塞,子线程则不会,这表示部分耗费时间的复杂运算完全可以从后台挪到前台来完成。 ...
分类:
Web程序 时间:
2020-06-04 21:40:53
阅读次数:
80
一:什么是异步 当一个方法被调用时立即返回,并获取一个线程执行该方法内部的业务,调用者不用等待该方法执行完毕,我们称这个方法为异步方法。 异步的好处在于非阻塞(调用线程不会暂停执行去等待子线程完成),因此我们把一些不需要立即使用结果、较耗时的任务设为异步执行,可以提高程序的运行效率。net4.0在T ...
1.多进程实现并发的socket # server.py?import socketfrom multiprocessing import Processdef chat(conn): while True: try: ret = conn.recv(1024).decode('utf-8') co ...
分类:
编程语言 时间:
2020-06-03 00:27:06
阅读次数:
61
深度学习:tensorflow框架tensor(张量)就是数据的意思operation(op)专门运算的操作节点,所有操作都是一个opgraph(图):整个程序的结构Session(会话)运行程序的图,就是输出变量和张量不一样 计算密集型:tensorflow cpu计算 IO密集型:web,scr ...
分类:
其他好文 时间:
2020-05-31 00:55:16
阅读次数:
130
[TOC] 一、一段代码引发的思考 首选,看下面这段代码会输出什么结果? 我们在主线程休眠1s后将子线程用到的stop开关设为了true,这个时候子线程是不是应该停止while循环,输出i的最终结果呢? 运行结果: 最终结果是程序会在后台一直运行.. 这说明了我们在主线程中修改的内容对子线程是不可见 ...
分类:
编程语言 时间:
2020-05-22 14:26:58
阅读次数:
60
#在前面创建的多线程是通过调用threading.Thread类,传递一个target参数,即传递一个可执行对象(函数),就能创建一个子线程对象#然后再通过调用线程对象的start方法启动线程#自定义线程类创建多线程的步骤:#1.自定义类继承threading.Thread类#2.自定义类重写run方法,即表示线程的执行体,相当于之前传递的参数target=函数#3.通过自定义类创建对象,然后调用
分类:
编程语言 时间:
2020-05-22 00:00:44
阅读次数:
64
任务 (Task) 多任务 同一时间只做了一件事情 多线程 通过多条道路解决了原来因为一条道路而引起的阻塞问题 普通方法调用: 只有主线程一条执行路径 多线程: 多条执行路径, 主线程和子线程并行交替执行 程序, 进程, 线程 程序 指令和数据的有续集合, 是一个静态的概念 进程 执行程序的一次执行 ...
分类:
编程语言 时间:
2020-05-21 19:09:41
阅读次数:
68