
C语言多线程
文章平均质量分 75
liuguangsh
这个作者很懒,什么都没留下…
展开
-
多线程-事件机制
多线程-事件机制:即线程B的启动需要等待线程A的某个信号,如果等待到信息则开始执行,代码如下,摘自《精通Windows API》 :/* *************************************《精通Windows API》 * 示例代码* Event.c* 7.2.1 演示使用Event同步线程********************************转载 2016-08-03 14:06:28 · 1978 阅读 · 0 评论 -
进程共享技术-管道
进程通信:一个进程不能读写另一个进程的内存,所以这儿要使用进程通信。操作系统中,一个进程不能读写(访问)另一个进程的内存空间,进程的内存空间使用是各自独立的。但C语言有个特点,即C语言可以把所有的设备都当做一个“文件”来操作。C语言可以把一片内存空间当作一个设备,即文件来操作,这时别的进程也可以读取这片内存空间,从而达到数据共享,进程通信的目底。进程通信有下图所示的几种方式:下转载 2016-09-02 15:07:07 · 492 阅读 · 0 评论 -
多线程多文件查询
多线程多文件查询所使用的场景:当要查询的内容存在多个文件中,如果一个个调用,比较麻烦,所以这时可以使用多线程多文件查询,让一个线程查询一个文件,这样就可以解决一次性查询多个文件的工作。如果要查询的文件较大,可以让线程一次只执行一部分,等当前线程查询结束时,清理此线程所占用的空间,然后再载入其它线程继续查询。本程序 查询了10个文件的,使用了10个线程,而一次加载10个文件到内存中,如果内存空间转载 2016-08-19 15:55:46 · 412 阅读 · 0 评论 -
多线程—临界区
多线程—临界区:解决多个线程同时防访一个变量的解决方法。#include#include#include//#define N 65 //临界区最多只能开辟 64 个线程#define N 64 int num = 0;CRITICAL_SECTION cs1;CRITICAL_SECTION cs2; //定义临界区,临界区是结构体DWORD WINAPI add转载 2016-08-02 16:36:49 · 384 阅读 · 0 评论 -
进程通信 - 信号量
//注意事项:另一进程意外终止,semaphore 不会接收。所以如果在进程通信最好用 互斥量 mutex. //这个缺陷同 event 事件机制一样。所以进程通信最好使用 互斥量 mutex。代码如下:代码一:#include#include#includechar name[100] = "shanghai";void main(){ //创建信号量,初始化可转载 2016-08-05 17:18:08 · 297 阅读 · 0 评论 -
多线程
多线程:#include#include#include//创建线程 _beginthread() CreateThread().//内部结束线程:_endthread() ExitThread()、外部结束线程 TerminateThread()//冻结线程:SuspendThread(hd); 解冻线程 ResumeThread(hd); DWORD WINA转载 2016-08-02 14:47:00 · 279 阅读 · 0 评论 -
进程通信-事件机制
另一进程意外终止,event 事件机制不会接收。所以如果在进程通信最好用 互斥量 mutex.进程通信代码如下:代码一:#include#include#includechar name[256] = "shanghai";void main(){ HANDLE event = CreateEvent(NULL, TRUE, FALSE, name); //创建事件转载 2016-08-05 16:47:58 · 765 阅读 · 0 评论 -
多进程通信 互斥量
多进程通信:线程一代码:#include#include#includechar name[100] = "shanghai";void main(){ //互斥量在内核创建。 // 参数:1、指向安全属性的指针, //2、 初始化互斥对象的所有者,如创建进程希望立即拥有互斥体,则设为TRUE。一个互斥体同时只能由一个线程拥有 //3、 指向互斥对象名的指针 //一旦转载 2016-08-05 16:12:24 · 1515 阅读 · 0 评论 -
多线程-互斥锁
#include#include#include//HANDLE mutex = NULL;SRWLOCK g_lock; //改变一个变量的时候需要锁定int num = 6400000;//在读期间,值一直在变化,没有锁定。DWORD WINAPI reada(void *p){ int i = 0; while (1) { Sleep(1000); pr转载 2016-08-05 15:07:05 · 458 阅读 · 0 评论 -
多线程-信号量
//信号量:多个线程运行,其它等待。//利用信号量的这一特点,也可以让信号量只有1 ,则就实现了资源共享冲突的解决。#include#include#include//信号量一开始是 0 //这儿可以这样理解,像资源池一样。如果资源池开辟了5个,每个使用要使用时//就拿去一个,这时资源池就减少一个。如果资源池里的资源为 0 则没有资源可以//使用,而当使用者 使用完后归还给转载 2016-08-05 12:22:00 · 285 阅读 · 0 评论 -
线程-事件机制
一对一 模式:这里主要是对 createevent() 参数的设置有所了解。#include#include#include//互斥:解决线程冲突//事件:解决线程通信//临界区:解决线程冲突//定时器:解决同步线程HANDLE event[5] = { 0 };HANDLE thread[5] = { 5 };DWORD WINAPI aa(void *p){ i转载 2016-08-05 10:20:56 · 304 阅读 · 0 评论 -
多线程-定时器
这不是一个完整的例子:#include#include#include//单独定时器只能用于同步通信HANDLE timer;void main1(){ timer = CreateWaitableTimer(NULL, TRUE, NULL); //创建定时器 if (timer == NULL) { return 0; } else { LARGE_转载 2016-08-04 11:15:12 · 334 阅读 · 0 评论 -
多线程-原子操作
#include#include#includeint sum = 0;//多个线程同时访问(读、写)一个变量,就会发生冲突。//一个变量的线程安全:多个线程同时读写没有误差。//解决方法:临界区、事件机制、互斥量、原子操作//原子操作的 速度快于 临界区、事件机制、互斥量//原子操作函数,解决多线程安全DWORD WINAPI run(void *p){ for (in转载 2016-08-03 16:43:59 · 493 阅读 · 0 评论 -
多线程-互斥量
多线程线程同步机制是为是各线程能够协同工作而设计的。Windows系统中有很多种机制可以用于线程同步,最常用的有下面几种:◇互斥对象( Mutex);◇ 事件对象(Event);◇信号量(Semaphore);◇ 临界区( critical section);◇ 可等待计时器(Waitable Timer)。下面的代码是互斥量代码的演示:#include#incl转载 2016-08-03 14:59:28 · 329 阅读 · 0 评论 -
多线程索引
/*多线程索引*/#define _CRT_SECURE_NO_WARNINGS#include#include#include#include#include#define LINE 13180806//获取文件有多少行int getLine(char *path){ printf("开始统计文件行数.....\n"); int sum = 0; FILE转载 2016-09-06 16:59:01 · 796 阅读 · 0 评论