网页资讯视频图片知道文库贴吧地图采购
进入贴吧全吧搜索

 
 
 
日一二三四五六
       
       
       
       
       
       

签到排名:今日本吧第个签到,

本吧因你更精彩,明天继续来努力!

本吧签到人数:0

一键签到
成为超级会员,使用一键签到
一键签到
本月漏签0次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行补签。
连续签到:天  累计签到:天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
06月12日漏签0天
c#吧 关注:188,371贴子:822,602
  • 看贴

  • 图片

  • 吧主推荐

  • 视频

  • 游戏

  • 3回复贴,共1页
<<返回c#吧
>0< 加载中...

学习笔记-------------多线程同步

  • 只看楼主
  • 收藏

  • 回复
  • 呐呐不是奈奈
  • c#攻城狮
    8
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
创建了多个线程时,就存在多个线程同时访问一个共享的资源的情况,
在这种情况下,就需要我们用到线程同步,线程同步可以防止数据
(共享资源)的损坏。
然而我们在设计应用程序还是要尽量避免使用线程同步,
因为线程同步会产生一些问题:
1. 它的使用比较繁琐。因为我们要用额外的代码把多个线程同时访问的数据
包围起来,并获取和释放一个线程同步锁,如果我们在一个代码块忘记获取锁
,就有可能造成数据损坏。
2. 使用线程同步会影响性能,获取和释放一个锁肯定是需要时间的吧,
因为我们在决定哪个线程先获取锁时候, CPU必须进行协调,进行这些额
外的工作就会对性能造成影响
3. 因为线程同步一次只允许一个线程访问资源,这样就会阻塞线程,
阻塞线程会造成更多的线程被创建,这样CPU就有可能要调度更多的线程,
同样也对性能造成了影响。
所以在实际的设计中还是要尽量避免使用线程同步,因此我们要避免使用
一些共享数据,例如静态字段。


青铜星玩家
百度移动游戏玩家均可认证(限百度账号),去领取
活动截止:2100-01-01
去徽章馆》
  • 呐呐不是奈奈
  • c#攻城狮
    8
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
Monitor实现线程同步
Monitor类说明,提供同步访问对象的机制。
1.位于System.Threading命名空间下,mscorlib.dll程序集中。
2.Monitor通过获取和释放排它锁的方式实现多线程的同步问题。
3.Monitor实现当前进程内的多线程的同步,和lock语句的功能类似。


青铜星玩家
百度移动游戏玩家均可认证(限百度账号),去领取
活动截止:2100-01-01
去徽章馆》
2025-06-12 04:58:14
广告
  • 呐呐不是奈奈
  • c#攻城狮
    8
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
Thread t1 = new Thread(put);
Thread t2 = new Thread(get);
t1.Start();
t2.Start();
Thread.Sleep(600);
t1.Abort();
t2.Abort();
textbox1.Text = "总数=" + sum.ToString();
Console.ReadKey();
}
int x = 0, sum = 0;
Random r = new Random();
bool mark = false;//标记
public void put()//生产者
{
int k;
for (k = 1; k <= 4; k++)
{
Monitor.Enter(this);//加排它锁
if (mark)
Monitor.Wait(this);//本线程等待
mark = !mark;
x = k;//放数据
Thread.Sleep(r.Next(20, 50));//睡眠
Monitor.Pulse(this);//激活消费者线程
Monitor.Exit(this);//激活排它锁
}
}
public void get()//消费者
{
int k;
for (k = 1; k <= 4; k++)
{
Monitor.Enter(this);//加排它锁
if (mark)
Monitor.Wait(this);//本线程等待
mark = !mark;
sum + = x;//累加数
Thread.Sleep(r.Next(20, 50));//睡眠
Monitor.Pulse(this);//激活生产者线程
Monitor.Exit(this);//激活排它锁
}


青铜星玩家
百度移动游戏玩家均可认证(限百度账号),去领取
活动截止:2100-01-01
去徽章馆》
登录百度账号

扫二维码下载贴吧客户端

下载贴吧APP
看高清直播、视频!
  • 贴吧页面意见反馈
  • 违规贴吧举报反馈通道
  • 贴吧违规信息处理公示
  • 3回复贴,共1页
<<返回c#吧
分享到:
©2025 Baidu贴吧协议|隐私政策|吧主制度|意见反馈|网络谣言警示