C#线程

简介:
using System;
using System.Threading;

namespace huangyibiao
{
    public class BookShop
    {
        //共享资源
        public int _iBookNumber = 1;

        public void Sale()
        {
            int iTemp;

            lock (this)
            {
                iTemp = _iBookNumber;
                if (iTemp > 0)
                {
                    //卖书过程: 1秒
                    Thread.Sleep(1000);
                    _iBookNumber -= 1;

                    Console.WriteLine("售出一本书!");
                }
                else
                {
                    Console.WriteLine("已经没有书了!");
                }
            }

        }
    }
    class Program
    {
        public static void Main()
        {
            BookShop bs = new BookShop();

            Thread thr1 = new Thread(new ThreadStart(bs.Sale));
            Thread thr2 = new Thread(new ThreadStart(bs.Sale));

            thr1.Start();
            thr2.Start();

            Console.Read();
        }
    }
}

目录
相关文章
|
22天前
|
SQL 开发框架 安全
C#编程与多线程处理
【4月更文挑战第21天】探索C#多线程处理,提升程序性能与响应性。了解C#中的Thread、Task类及Async/Await关键字,掌握线程同步与安全,实践并发计算、网络服务及UI优化。跟随未来发展趋势,利用C#打造高效应用。
|
2月前
|
Java 调度 C#
C#学习系列相关之多线程(一)----常用多线程方法总结
C#学习系列相关之多线程(一)----常用多线程方法总结
|
2月前
|
安全 编译器 C#
C#学习相关系列之多线程---lock线程锁的用法
C#学习相关系列之多线程---lock线程锁的用法
|
2月前
|
C#
C#学习相关系列之多线程---ConfigureAwait的用法
C#学习相关系列之多线程---ConfigureAwait的用法
|
2月前
|
C#
C#学习相关系列之多线程---TaskCompletionSource用法(八)
C#学习相关系列之多线程---TaskCompletionSource用法(八)
|
2月前
|
Java C#
C#学习系列相关之多线程(五)----线程池ThreadPool用法
C#学习系列相关之多线程(五)----线程池ThreadPool用法
|
2月前
|
并行计算 安全 Java
C# .NET面试系列四:多线程
<h2>多线程 #### 1. 根据线程安全的相关知识,分析以下代码,当调用 test 方法时 i > 10 时是否会引起死锁? 并简要说明理由。 ```c# public void test(int i) { lock(this) { if (i > 10) { i--; test(i); } } } ``` 在给定的代码中,不会发生死锁。死锁通常是由于两个或多个线程互相等待对方释放锁而无法继续执行的情况。在这个代码中,只有一个线程持有锁,且没有其他线程参与,因此不
115 3
|
7月前
|
C#
C#线程锁
C#线程锁
21 1
|
4天前
|
安全 Java C#
C#多线程详解
C#多线程详解
12 0
|
5月前
|
IDE C# 开发工具
C# | 多线程批量下载文件(创建N个线程同时批量下载文件,只需要几行代码而已)
批量下载文件时使用多线程可以有效缩短完成时间,本文将讲解如何使用C#+CodePlus扩展库快速完成多线程的文件下载。 大部分代码由IDE自动生成,需要我们自己编写的代码正好**10行**。也就是说,只需要10分钟,就可以手撸一个多线程的批量下载器。
99 0
C# | 多线程批量下载文件(创建N个线程同时批量下载文件,只需要几行代码而已)