- 博客(1)
- 资源 (17)
- 收藏
- 关注
转载 关于多个线程同时调用单例模式的对象,该对象中方法的局部变量是否会受多个线程的影响
关于多个线程同时调用单例模式的对象,该对象中方法的局部变量是否会受多个线程的影响对于那些会以多线程运行的单例类,例如Web应用中的Servlet,每个方法中对局部变量的操作都是在线程自己独立的内存区域内完成的,所以是线程安全的。对于成员变量的操作,可以使用ThreadLocal来保证线程安全。局部变量不会受多线程影响成员变量会受到多线程影响多个线程应该是调用的同一个对象
2017-03-15 14:35:06 10437 1
C语言学生管理系统
#include
#include
#include
int INDEX[32];
//结构体变量
struct STUDENT{
int id;
int age;
int chinese,math,english;
char name[21];
}students[32];
void page_title(char *menu_item){
printf(">>> 学 生 管 理 系 统 <<<\n\n- %s -\n\n",menu_item);
}//
void return_confirm(void){
printf("\n按任意键返回……\n");
getch();
}//
void student_new(void){
int n;
page_title("录入学生基本信息");
for(n=0;n<32;n++)
if(students[n].id==0) break;
printf("学号:");
scanf("%d",&students[n].id);
printf("姓名:");
scanf("%s",&students[n].name);
printf("年龄:");
scanf("%d",&students[n].age);
return_confirm();
}//①
int search_id(void){
int n,i;
printf("请输入学生学号:");
scanf("%d",&i);
for(n=0;n<32;n++)
{
if(students[n].id==i&&students[n].id!=0)
{
printf("学号:%d\n",students[n].id);
printf("姓名:%s\n",students[n].name);
printf("年龄:%d\n",students[n].age);
return n;
}
}
printf("\n输入错误或学号不存在.\n");
return -1;
}//
void student_del(void){
int n;
page_title("注销学生基本信息");
if((n=search_id())!=-1) students[n].id=0;
printf("\n!该学生已注销.\n");
return_confirm();
}//③
void student_edit(void){
int n;
page_title("编辑学生基本信息");
if((n=search_id())!=-1)
{
printf("\n请重新输入新信息:\n学号:");
scanf("%d",&students[n].id);
printf("姓名:");
scanf("%s",&students[n].name);
printf("年龄:");
scanf("%d",&students[n].age);
}
return_confirm();
}//②
2013-11-26
线性表的基本操作,插入删除,输出线性表内容,输出两个线性表的相同元素
线性表的基本操作,插入删除,输出线性表内容,输出两个线性表的相同元素,判空,判满,查找指定位置元素,查找指定元素位置,线性表的初始化
2013-09-24
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人