![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
多线程
csdn_gddf102384398
这个作者很懒,什么都没留下…
展开
-
多线程之多生产者,多消费者,多缓冲区问题解决(Win32API实现)
/* 多线程之多生产者,多消费者,多缓冲区问题 */ #include<stdio.h> #include<windows.h> #include<process.h> #define BUF_SIZE 10 int buffer[BUF_SIZE]; //缓冲区 int in=0, out=0; HANDLE hEmpty, hFull; C...原创 2018-08-17 10:02:33 · 1752 阅读 · 2 评论 -
数据解析
对于面向字节流的协议,如串口通信、TCP,数据解析方法简介如下(以串口为例): 读取串口: BYTE readBuf[BUF_SIZE]; DWORD dwRead; DWORD dwWantRead = BUF_SIZE; DWORD dwResolveSuccess = 0; while (pctcb->bStartCheck) { dwRead = 0; if...原创 2018-12-29 14:53:48 · 272 阅读 · 0 评论 -
网络通信编程
IOCP的介绍: https://www.cnblogs.com/talenth/p/7068392.html 进程间通信介绍: https://www.cnblogs.com/findumars/p/6329593.html 多线程同步介绍: 1、用户模式的多线程同步有:原子操作(Interlocked函数)、临界区CRITICAL_SECTION、条件变量、Slim读写锁等 2、内核模式的线程...原创 2019-01-22 11:06:02 · 353 阅读 · 0 评论 -
Windows使用事件内核对象实现生产者消费者问题
#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <tchar.h> #include <Windows.h> #include <process.h> #include <locale.h> TCHAR buf[256]; HANDLE hProduceEvent,...原创 2019-01-30 14:59:26 · 283 阅读 · 0 评论 -
为什么说Linux不存在真正意义上的线程?
个人理解: Linux不存在真正意义上的线程,是因为Linux中线程调度是由创建线程的进程进行管理的,这点有别于Windows,Windows的CreateThread确实创建了线程,Windows中由操作系统负责线程的调度(而不是创建线程的进程进行调度)。 ...原创 2019-03-28 16:59:54 · 1289 阅读 · 1 评论 -
Linux使用信号量解决线程互斥问题(卖票程序)
/* compile: g++ -D_REENTRANT -lpthread xx.cpp */ #include <stdio.h> #include <pthread.h> #include <unistd.h> #include <semaphore.h> int ticket = 20; sem_t mutex; void* thre...原创 2019-03-28 19:47:17 · 552 阅读 · 0 评论 -
Linux使用信号量解决生产者消费者问题
/* compile: g++ -D_REENTRANT -lpthread xx.cpp */ #include <stdio.h> #include <pthread.h> #include <unistd.h> #include <semaphore.h> sem_t full, empty; char buf[256]; void* pr...原创 2019-03-29 08:54:57 · 2294 阅读 · 0 评论