线程与进程
baymin_dly
这个作者很懒,什么都没留下…
展开
-
利用多线程和信号量,互斥量实现的经典的生产者与消费者模型
多线程并发应用程序有一个经典的模型,即生产者/消费者模型。系统中,产生消息的是生产者,处理消息的是消费者,消费者和生产者通过一个缓冲区进行消息传递。生产者产生消息后提交到缓冲区,然后通知消费者可以从中取出消息进行处理。消费者处理完信息后,通知生产者可以继续提供消息。要实现这个模型,关键在于消费者和生产者这两个线程进行同步。也就是说:只有缓冲区中有消息时,消费者才能够提取消息;只有消息已被处理,原创 2017-08-17 19:11:08 · 946 阅读 · 0 评论 -
用线程和互斥锁实现的简单的卖票系统
#include #include #include #include #include int ticket = 100; // 票// 互斥锁pthread_mutex_t mutex;// 卖票线程void *sale_ticket(void *v){ int window = (int)v; printf ("窗口 %d 开始卖票\n", windo原创 2017-08-15 19:22:57 · 1363 阅读 · 0 评论 -
用共享内存和信号量实现的简单的卖票系统
#ifndef __SEMAPHORE_H__#define __SEMAPHORE_H__#include #include #include union semun { int val; /* Value for SETVAL */ struct semid_ds *buf; /* Buffer for IPC_STAT, IPC_SE原创 2017-08-14 20:48:45 · 376 阅读 · 0 评论 -
守护进程的实现
#include #include #include #include #include #include int daemonize(int nochdir, int noclose){ // 1、创建子进程,关闭父进程 pid_t pid = fork(); if (pid > 0) { exit(0); } else if (pid < 0) { ret原创 2017-08-09 20:55:34 · 239 阅读 · 0 评论 -
线程1打印A,线程2打印B,线程3打印C,依次打印10遍
#include #include #include #include int i=0, a=0, b=0, c=0;void* A(){ while(i<10) { while(a!=0); while(i>=10); printf("A"); a=1; b=0; }}v原创 2017-09-16 19:05:42 · 1047 阅读 · 0 评论