试验线程同步与通信-KeShi.PPT

试验线程同步与通信-KeShi

实验三(1)、线程同步与通信 一、实验目的 1、掌握Linux下线程的概念; 2、了解Linux线程同步与通信的主要机制; 3、通过信号灯操作实现线程间的同步与互斥。 二、实验内容 通过Linux多线程与信号灯机制,设计并实现计算机线程与I/O线程共享缓冲区的同步与通信。 程序要求:两个线程,共享公共变量a 线程1负责计算(1到100的累加,每次加一个数) 线程2负责打印(输出累加的中间结果) 三、预备知识 1、Linux下的信号灯及其P、V操作 在Linux中信号灯是一个数据集合,可以单独使用这一集合的每个元素。 有关的系统调用命令: 1)semget:返回一个被内核指定的整型的信号灯索引。 2)semop:执行对信号灯集的操作 3)semctl:执行对信号灯集的控制操作。 信号灯的定义: 数据结构的原型是semid_ds,在linux/sem.h中定义: struct semid_ds{ struct ipc_permsem_perm;/*permissions..seeipc.h*/ time_t sem_otime;/*last semop time*/ time_t sem_ctime;/*last change time*/ struct sem*sem_base;/*ptr

文档评论(0)

1亿VIP精品文档

相关文档