c语言 多线程的简单实现 线程锁
来源:互联网 发布:十大网络电视机排行榜 编辑:程序博客网 时间:2024/04/29 18:24
#include <stdio.h>
#include <math.h>
#include <pthread.h>
#include <stdlib.h>
#include <string.h>
#include <sys/time.h>
#include <unistd.h>
// #include <windows.h>
extern "C" {
#include "lua.h"
#include "lualib.h"
#include "lauxlib.h"
};
#define THREADMAX 10
pthread_t thread[THREADMAX]; //创建线程函数返回类型
pthread_mutex_t mut; //互斥锁类型
static int number=0;
void *thread1(void* a) //线程函数
{
pthread_mutex_lock(&mut); //加锁,用于对共享变量操作
lua_State *L = luaL_newstate();
luaL_openlibs(L);
if(luaL_loadfile(L, "*****.lua") || lua_pcall(L, 0,0,0)){
printf("error %s\n", lua_tostring(L,-1));
}
number++;
lua_getglobal(L,"****");
lua_pushnumber(L, number);
lua_pcall(L,1,0,0);
lua_pop(L, 1);
lua_close(L);
void thread_create(void)
{
/*创建线程*/
int i=0;
for (i=0;i<THREADMAX;i++){
pthread_create(&thread[i], NULL, thread1, NULL);
}
}
void thread_wait(void)
{
int i=0;
for (i=0;i<THREADMAX ;i++){
pthread_join(thread[i],NULL);
}
}
int main()
{
/*用默认属性初始化互斥锁*/
pthread_mutex_init(&mut,NULL);
thread_create();
thread_wait();
return 0;
}
#include <math.h>
#include <pthread.h>
#include <stdlib.h>
#include <string.h>
#include <sys/time.h>
#include <unistd.h>
// #include <windows.h>
extern "C" {
#include "lua.h"
#include "lualib.h"
#include "lauxlib.h"
};
#define THREADMAX 10
pthread_t thread[THREADMAX]; //创建线程函数返回类型
pthread_mutex_t mut; //互斥锁类型
static int number=0;
void *thread1(void* a) //线程函数
{
pthread_mutex_lock(&mut); //加锁,用于对共享变量操作
lua_State *L = luaL_newstate();
luaL_openlibs(L);
if(luaL_loadfile(L, "*****.lua") || lua_pcall(L, 0,0,0)){
printf("error %s\n", lua_tostring(L,-1));
}
number++;
lua_getglobal(L,"****");
lua_pushnumber(L, number);
lua_pcall(L,1,0,0);
lua_pop(L, 1);
lua_close(L);
pthread_mutex_unlock(&mut); //解锁
}
void thread_create(void)
{
/*创建线程*/
int i=0;
for (i=0;i<THREADMAX;i++){
pthread_create(&thread[i], NULL, thread1, NULL);
}
}
void thread_wait(void)
{
int i=0;
for (i=0;i<THREADMAX ;i++){
pthread_join(thread[i],NULL);
}
}
int main()
{
/*用默认属性初始化互斥锁*/
pthread_mutex_init(&mut,NULL);
thread_create();
thread_wait();
return 0;
}
1 0
- c语言 多线程的简单实现 线程锁
- 多线程~~简单的线程创建,C语言实现
- 多线程~~简单的线程创建,C语言实现
- c语言线程池的简单实现
- C语言实现简单的线程池
- C语言简单的多线程
- C语言实现一个简单的线程池
- 一个简单线程池的实现 --C语言
- C语言实现简单线程池
- C语言实现简单线程池
- C语言实现简单线程池
- 嵌入式 C语言实现简单线程池
- C语言实现简单线程池
- C语言实现简单线程池
- C语言实现简单线程池
- 多线程之线程池的简单实现
- 多线程中线程池的简单实现
- 简单C语言线程池的编写
- Linux进程实践(1) --Linux进程编程概述
- GitHub 优秀的 Android 开源项目
- Phtyon读取xml文件
- 自适应布局
- ajax返回success后window.open()
- c语言 多线程的简单实现 线程锁
- spark官方文档翻译_Cluster Mode Overview
- FFMPEG阅读笔记
- openwrt运行提示 can't load library 'librt.so.0'
- Android签名总结
- 我与地图的那些事(百度)
- Rxbus使用方法
- Android消息传递之Handler消息机制
- win7下80端口被(Pid=4)占用的解决方法