07 2018 档案

摘要:前面介绍了pthread_create函数,并且当时的例子中,传入的参数都是空指针,而不是指向pthread_attr_t结构的指针。可以使用pthread_attr_t结构修改线程默认属性,并把这些属性与创建的线程联系起来。可以使用pthread_attr_init函数初始化pthread_att 阅读全文
posted @ 2018-07-29 20:28 red_leaf_412 阅读(1670) 评论(0) 推荐(0) 编辑
摘要:前面介绍的互斥量加锁要么是锁状态,要么就是不加锁状态。而且只有一次只有一个线程可以对其加锁。这样的目的是为了防止变量被不同的线程修改。但是如果有线程只是想读而不会去写的话,这有不会导致变量被修改。但是如果是互斥量加锁,则读写都没有办法。这种场景不能使用互斥量,必须使用读写锁。 读写锁可以有3种状态: 阅读全文
posted @ 2018-07-29 08:59 red_leaf_412 阅读(3214) 评论(0) 推荐(0) 编辑
摘要:python版: server: 代码如下: #include <winsock2.h> #pragma comment(lib , "ws2_32.lib") #导入库 void socket_function(){ WSADATA wsd; struct sockaddr_in dest; ch 阅读全文
posted @ 2018-07-17 17:06 red_leaf_412 阅读(453) 评论(0) 推荐(0) 编辑
摘要:死锁就是不同的程序在运行时因为某种原因发生了阻塞,进而导致程序不能正常运行。阻塞程序的原因通常都是由于程序没有正确使用临界资源。 我们举个日常生活中的例子来比喻死锁。我们把马路上行驶的汽车比作运行着的程序,把马路比作临界资源,如果有两辆汽车相互碰撞,就会把车停在马路上,这样的话他们一直占用着马路这个 阅读全文
posted @ 2018-07-15 10:44 red_leaf_412 阅读(442) 评论(0) 推荐(0) 编辑
摘要:当多个线程共享相同的内存的时候,需要确保每个线程都看到一致的数据视图。如果每个线程使用的变量都是其他线程不会读取和修改的。那么就不存在一致性问题。同样,如果变量是只读的,多个线程也不会有一致性的问题。但是当一个线程可以修改的变量其他线程也可以读取或者修改的时候。我们就需要对这些线程进行同步,确保它们 阅读全文
posted @ 2018-07-14 15:28 red_leaf_412 阅读(161) 评论(0) 推荐(0) 编辑
摘要:在线程创建的时候pthread_exit都是调用的固定参数,我们先来看下如果用自动变量作为pthread_exit的参数时出现的问题 typedef struct foo{ int a; int b; int c; int d; }foo; void printinfo(const char *s, 阅读全文
posted @ 2018-07-08 15:45 red_leaf_412 阅读(287) 评论(0) 推荐(0) 编辑
摘要:前面章节中介绍了进程。从这一章开始介绍线程。进程和线程的差别是什么呢: 进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一个独立单位. 线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位.线程自己基本上不拥有系统资源, 阅读全文
posted @ 2018-07-07 21:12 red_leaf_412 阅读(634) 评论(0) 推荐(0) 编辑
摘要:第一步:确认自己电脑上的Python版本。然后下载对应的.whl文件下载 第二步:https://www.lfd.uci.edu/~gohlke/pythonlibs/#pyqt4上下载对应版本版本的.whl文件。例如cp-27-cp27m就代表是python2.7的版本。如果要下载python3. 阅读全文
posted @ 2018-07-01 15:03 red_leaf_412 阅读(660) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示