Windows下使用C语言按要求写两个多线程的例子
//给你个例子,没写第二个,参照1写2应该很容易的,还有这段代码用全局变量和while循环在线程间交换信息,在可靠性和效率上都是有缺陷的,仅仅当做线程概念的学习。线程的安全同步和通信是三言两语说不清的,你可以网上自行搜索
#include<stdio.h>
#include <conio.h>
#include<Windows.h>
#include <process.h>
char c = 0;
char pA = 0;
char pB = 0;
VOID A(PVOID p) //线程A
{
pA = 1;
while (1)
{
if (c == 'A')
{
pA = 0;
break; //让线程自然结束
}
printf("AAA");
Sleep(1000); //延时1000ms
}
}
VOID B(PVOID p) //线程B
{
pB = 1;
while (1)
{
if (c == 'B')
{
pB = 0;
break;
}
printf("BBB");
Sleep(2000);
}
}
int main()
{
printf("输入小写a启动A,输入大写A结束A\n输入小写b启动B,输入大写B结束B\n");
while (1)
{
c = getch();
if(c=='a'&&pA==0)
_beginthread(A, 0, 0);
if (c == 'b'&&pB == 0)
_beginthread(B, 0, 0);
if (c == '0')
{
break; //进程结束,则隶属于该进程的线程也就结束了
}
}
return 0;
}
#include<stdio.h>
#include <conio.h>
#include<Windows.h>
#include <process.h>
char c = 0;
char pA = 0;
char pB = 0;
VOID A(PVOID p) //线程A
{
pA = 1;
while (1)
{
if (c == 'A')
{
pA = 0;
break; //让线程自然结束
}
printf("AAA");
Sleep(1000); //延时1000ms
}
}
VOID B(PVOID p) //线程B
{
pB = 1;
while (1)
{
if (c == 'B')
{
pB = 0;
break;
}
printf("BBB");
Sleep(2000);
}
}
int main()
{
printf("输入小写a启动A,输入大写A结束A\n输入小写b启动B,输入大写B结束B\n");
while (1)
{
c = getch();
if(c=='a'&&pA==0)
_beginthread(A, 0, 0);
if (c == 'b'&&pB == 0)
_beginthread(B, 0, 0);
if (c == '0')
{
break; //进程结束,则隶属于该进程的线程也就结束了
}
}
return 0;
}
佚名
2024-12-23 04:54:22
类似问题(10)
-
佚名2024-12-23 20:07:22
问C语言如何终止线程
答终止线程有三种方法:1.线程可以在自身内部调用AfxEndThread()来终止自身的运行2.可以在线程的外部调用BOOL TerminateThread( H...
-
佚名2024-12-23 02:40:25
问一个C语言线程问题
答可以,用struct
-
佚名2024-12-23 02:19:49
问C语言多线程如何实现?
答线程之间没有共享数据,不需要线程同步你在主函数里面,把线程销毁的太快了,线程都没来得及执行完你就退出了,在创建完线程之后,加个sleep等待几秒再销毁线程。同时...
-
佚名2024-12-23 06:48:54
问在Linux环境下用C语言创建一个父线程,三个子线程,怎么编呢?
答int i = 0;for (; i<3; i++){ if (fork()) { } else { swit...
-
佚名2024-12-23 07:15:01
问C语言如何使用线程池中的某个线程
答问别人问题,还这么牛叉,真心佩服不要给线程派任务,让线程空闲的时候,自己去领任务
-
佚名2024-12-23 00:23:39
问C语言子线程中如何使用主线程的变量
答要么 使用全局变量.要么 在主线程中,通过全局变量,或者消息, 或者建立子线程传参, 总之凡是可行的交互方式都可以, 把主线程中变量的地址传给子线程. 即使用主...
-
佚名2024-12-23 23:15:13
问如何使用visual studio2017编写C语言
答文件菜单的 新建 里头点进去会出现 新建项目 的框左边选择 Visual C++ 项目右边选择 win32 控制台应用程序并在下面起好名字,选好你的项目的文件夹...
-
佚名2024-12-23 08:00:00
问用C语言编写贪吃蛇游戏的程序
答回答:Mr.emily大师6月3日 16:45 #define N 200#include<graphics.h>#include<stdlib.h...
-
佚名2024-12-23 08:00:00
问C语言中>>和<<如何使用?
答C语言中<< 代表左移运算符,>> 代表右移运算符,位移位运算符是将数据看成二进制数,对其进行向左或向右移动若干位的运算。<< 代表左移...
-
佚名2024-12-23 08:00:00
问您好,有关于C#多线程web程序应用的的例子吗?新手 求助
答你这么写timer控件应该在主线程里的吧,那你对应的取数据操作也在主线程里呀,在取数据的时候就会卡一下。 可以不需要timer控件,我给你段代码,你根据实际情况...
风水
起名
网名
- 1 个性情侣五字网名大全
- 2 河南方言网名
- 3 db安全套网名
- 4 独孤九剑网名
- 5 梦字网名 球球
- 6 百草没消的配对网名是啥
- 7 cf空白昵称最新代码
- 8 带有深海昵称
- 9 红警检测到昵称异常
- 10 网页查询qq历史昵称
说说
- 1 加入黑名单看得到个性签名吗
- 2 吃出个性签名
- 3 无语的qq签名
- 4 qq签名明星王源
- 5 好听的qq签名8个字
- 6 个性说说伤感说说
- 7 关于笑着哭最痛的说说
- 8 不想再做好女孩的说说
- 9 说说跟队形软件手机版
- 10 说说你对野人的认识