多线程
csdn_gddf102384398
这个作者很懒,什么都没留下…
展开
-
多线程之多生产者,多消费者,多缓冲区问题解决(Win32API实现)
/* 多线程之多生产者,多消费者,多缓冲区问题*/#include<stdio.h>#include<windows.h>#include<process.h>#define BUF_SIZE 10int buffer[BUF_SIZE]; //缓冲区int in=0, out=0;HANDLE hEmpty, hFull;C...原创 2018-08-17 10:02:33 · 1777 阅读 · 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 · 310 阅读 · 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 · 357 阅读 · 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 · 291 阅读 · 0 评论 -
为什么说Linux不存在真正意义上的线程?
个人理解:Linux不存在真正意义上的线程,是因为Linux中线程调度是由创建线程的进程进行管理的,这点有别于Windows,Windows的CreateThread确实创建了线程,Windows中由操作系统负责线程的调度(而不是创建线程的进程进行调度)。...原创 2019-03-28 16:59:54 · 1318 阅读 · 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 · 561 阅读 · 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 · 2298 阅读 · 0 评论