2021SC@SDUSC
项目环境:
- 树莓派4b
- Ubuntu Desktop 21.04
多线程单词统计:
本实验中,使用多线程实现统计文本单词的功能。在统计时,凡是一个非字母或数字的字符跟在字母或数字的后面,那么这个字母或数字就是单词的结尾 。允许线程使用互斥锁来修改临界资源,确保线程间的同步与协作。若两个线程需要安全地共享一个公共计数器,需要把公共计数器加锁。
#include <stdio.h>
#include <stdlib.h>
#include <pthread.h>
#include <unistd.h>
#include <semaphore.h>
#include <string.h>
pthread_mutex_t f_mutex;
FILE *fp1,*fp2;
char ch;
int count=0;
void *pthread_function1(void *arg)
{
//sleep(1);
fp1=fopen("1.txt","r");
if(!fp1)
{
printf("Open file failed!");
}
while((ch=fgetc(fp1))!=EOF)
{
if((ch>='a'&&ch<='z')||(ch>='0'&&ch<='9'))
continue;
pthread_mutex_lock(&