實驗--多執行緒
實驗目標:
1、掌握執行緒和多執行緒的概念
2、掌握建立執行緒的兩種方法及其區別
3、瞭解執行緒的啟動、終止、同步、互斥和優先順序等概念
實驗內容:1、編寫一個程式,其功能是執行之後,其中有一個執行緒可以輸出20次你的學號,另一個執行緒會輸出20次你的姓名。
思考:如何實現列印所有的學號之後再列印姓名?
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
namespace ConsoleApplication1
{
class MyThread
{
private string id="250129131";
private string name = "zhang";
private int flag;
public MyThread(int ff)
{
flag = ff;
}
public void disp()
{
if (flag == 0)
{
for (int j = 0; j < 20; j++)
{
Console.WriteLine(id);
Thread.Sleep(20);
}
}
else
{
for (int j = 0; j < 20; j++)
{
Console.WriteLine(name);
Thread.Sleep(20);
}
}
}
}
class Program
{
static void Main(string[] args)
{
MyThread thread1 = new MyThread(1);
MyThread thread2 = new MyThread(0);
Thread objThread1 = new Thread(new ThreadStart(thread1.disp));
Thread objThread2 = new Thread(new ThreadStart(thread2.disp));
objThread1.Start();
objThread1.Join();
objThread2.Start();
Console.ReadLine();
}
}
}
2、編寫程式實現火車票售票程式。要求如下:
(1)假設列車的座號為1-60,車票按照座號依次售出
(2)有四個視窗可以同時售票(即:建立四個執行緒)
(3)每個視窗都有20個人排隊買票
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
namespace ConsoleApplication2
{
class MyThread
{
static int count = 1;
public void sellTic()
{
for (int i = 0; i < 20; i++)
{
lock (this)
{
if (count > 60)
Console.WriteLine("{0}的第{1}個人來買票,票已售完!",Thread.CurrentThread.Name,i+1);
else
{
Console.WriteLine("{0}的第{1}個人來買票,得到了第{2}號票!", Thread.CurrentThread.Name, i+1,count);
count++;
Thread.Sleep(10);
}
}
}
}
}
class Program
{
static void Main(string[] args)
{
MyThread obj = new MyThread();
Thread th1 = new Thread(new ThreadStart(obj.sellTic));
th1.Name = "視窗1";
Thread th2 = new Thread(new ThreadStart(obj.sellTic));
th2.Name = "視窗2";
Thread th3 = new Thread(new ThreadStart(obj.sellTic));
th3.Name = "視窗3";
Thread th4 = new Thread(new ThreadStart(obj.sellTic));
th4.Name = "視窗4";
th1.Start();
th2.Start();
th3.Start();
th4.Start();
Console.ReadLine();
}
}
}
相關文章
- 實驗六 Java多執行緒設計Java執行緒
- 多執行緒和多執行緒同步執行緒
- 多執行緒--執行緒管理執行緒
- 執行緒與多執行緒執行緒
- 多執行緒【執行緒池】執行緒
- Java多執行緒之守護執行緒實戰Java執行緒
- 如何實現多執行緒執行緒
- 多執行緒實現多工二執行緒
- 多執行緒實現多工一執行緒
- Java多執行緒-執行緒中止Java執行緒
- 多執行緒之初識執行緒執行緒
- 多執行緒------執行緒與程式/執行緒排程/建立執行緒執行緒
- 多執行緒系列(1),多執行緒基礎執行緒
- 玩轉java多執行緒 之多執行緒基礎 執行緒狀態 及執行緒停止實戰Java執行緒
- a、多執行緒執行緒
- python threading 執行緒原理實驗Pythonthread執行緒
- Java實驗五: Java多執行緒程式設計(頭歌)Java執行緒程式設計
- Java多執行緒的實現Java執行緒
- Java多執行緒實現方式Java執行緒
- 【unity】 Loom實現多執行緒UnityOOM執行緒
- JavaScript如何實現多執行緒?JavaScript執行緒
- Runnable介面實現多執行緒執行緒
- 多執行緒具體實現執行緒
- 多執行緒系列之 執行緒安全執行緒
- iOS 多執行緒之執行緒安全iOS執行緒
- Java多執行緒之執行緒中止Java執行緒
- Android多執行緒之執行緒池Android執行緒
- Java多執行緒-執行緒狀態Java執行緒
- Java多執行緒-執行緒通訊Java執行緒
- kuangshenshuo-多執行緒-執行緒池執行緒
- java 多執行緒守護執行緒Java執行緒
- Java多執行緒(2)執行緒鎖Java執行緒
- 多執行緒之手撕執行緒池執行緒
- java多執行緒9:執行緒池Java執行緒
- 【java多執行緒】(二)執行緒停止Java執行緒
- 執行緒以及多執行緒,多程式的選擇執行緒
- 多執行緒學習一(多執行緒基礎)執行緒
- Java多執行緒(一)多執行緒入門篇Java執行緒
- 多執行緒,多程式執行緒