必须要控制!
目录相当于临界资源,必须要在线程实现过程中进行线程同步控制,否则有多个线程并发处理同一个文件的风险,导致一个线程把文件删除后,另外一个线程还在进行读取,导致读取和输出报错。
同步方式很多,下面我推荐一种方法:
1、首先在主函数中遍历所有文件,把文件名push到一个队列/链表。
2、pthread_create创建N个线程。
3、使用线程锁控制队列/链表的push和pop,保证操作同步。
4、每个线程访问队列/链表,从中pop取出一个文件名,然后进行操作。
那么这些线程会怎么处理目录下面的一堆文件 ?
这线程函数不是你自己写的吗. 你想怎么处理就怎么处理啊.
读取 -> 处理 -> 保存(新文件) -> 删除(旧文件)
记得线程要同步.
需要控制每个线程处理的文件的范围吗?
是什么意思...
开个int* array或int array[N]吧,然后用分别开线程处理,可以用OpenMP会好些。