#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);
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;
}