多线程(打印ABCD)
来源:互联网 发布:扔玻璃球 算法 编辑:程序博客网 时间:2024/06/05 10:28
描述
问题描述:有4个线程和1个公共的字符数组。线程1的功能就是向数组输出A,线程2的功能就是向字符输出B,线程3的功能就是向数组输出C,线程4的功能就是向数组输出D。要求按顺序向数组赋值ABCDABCDABCD,ABCD的个数由线程函数1的参数指定。[注:C语言选手可使用WINDOWS SDK库函数]
接口说明:
void init(); //初始化函数
void Release(); //资源释放函数
unsignedint__stdcall ThreadFun1(PVOID pM) ; //线程函数1,传入一个int类型的指针[取值范围:1 – 250,测试用例保证],用于初始化输出A次数,资源需要线程释放
unsignedint__stdcall ThreadFun2(PVOID pM) ;//线程函数2,无参数传入
unsignedint__stdcall ThreadFun3(PVOID pM) ;//线程函数3,无参数传入
Unsigned int __stdcall ThreadFunc4(PVOID pM);//线程函数4,无参数传入
char g_write[1032]; //线程1,2,3,4按顺序向该数组赋值。不用考虑数组是否越界,测试用例保证
知识点 字符串,循环,链表,队列,栈,查找,搜索,排序,树,图,数组,函数,指针,枚举,位运算,结构体,联合体,文件操作,递归
运行时间限制 10M
内存限制 128
输入
输入一个int整数
输出
输出多个ABCD
样例输入 10
样例输出ABCDABCDABCDABCDABCDABCDABCDABCDABCDABCD
<span style="font-family:Courier New;font-size:14px;">import java.util.Scanner;public class Main{private static String status = "A";public static void main(String[] args) {Scanner sc = new Scanner(System.in);final int num = sc.nextInt();sc.close();new Thread(new Runnable() {@Overridepublic void run() {for (int i = 0; i < num;) {synchronized (status) {if (status.equals("A")) {System.out.print("A");status = "B";i++;}}}}}).start();new Thread(new Runnable() {@Overridepublic void run() {for (int i = 0; i < num;) {synchronized (status) {if (status.equals("B")) {System.out.print("B");status = "C";i++;}}}}}).start();new Thread(new Runnable() {@Overridepublic void run() {for (int i = 0; i < num;) {synchronized (status) {if (status.equals("C")) {System.out.print("C");status = "D";i++;}}}}}).start();new Thread(new Runnable() {@Overridepublic void run() {for (int i = 0; i < num;) {synchronized (status) {if (status.equals("D")) {System.out.print("D");status = "A";i++;if (i == num)System.out.println();}}}}}).start();}}</span>
0 0
- 多线程(打印ABCD)
- java多线程顺序打印ABCD四个字母
- linux多线程之信号量---疯狂打印abcd
- java wait notify notifyAll and 多线程顺序打印ABCD
- 简单打印abcd组合
- JAVA 打印ABCD菱形
- 多线程按顺序依次打印ABCD---java多线程的一道经典面试题
- 多线程连续输出ABCD
- c++多线程循环输出ABCD
- 输入abcd 打印所有字母的组合
- abcd
- abcd
- ABCD
- abcd
- abcd
- abcd
- abcd
- Codeforces Round #318(ABCD)
- ios:点击一个button不断切换背景图片
- 单链表的创建、增加、删除、清空操作
- Strassen矩阵乘法
- hdu 5432 Minimum Cut 树链剖分nlogn
- Linux C下的内存映射函数
- 多线程(打印ABCD)
- Android Custom View --- Circular(环形条)
- 深度学习(六)caffe入门学习
- iOS解析html
- 数据挖掘 入门升级
- cloudera集成kafka
- 利用ffmpeg修改的音频图片提取接口
- i386 head.S完整分析【转】
- UI 动画之反射变换的缩放