如何实现多线程的同步

多线程是为了使得多个线程并行的工作以完成多项任务,以提高系统的效率。通过使用多线程有以下几点好处:
1.可以把占据长时间的程序中的任务作为一个单独的线程放到后台去处理。而用户界面可以继续响应用户的操作。例如用户单击一个按钮去触发某些事件的处理,可以弹出一个进度条来显示处理的进度等。
2.加快程序的处理速度。
3.在一些等待的任务实现上如用户输入、文件读写和网络收发数据等,可以释放一些资源如内存占用等。

虽然多线程能够带来不少好处,但是也有不少问题需要解决。特别是涉及到独占性系统资源的调度问题。例如,对于像磁盘驱动器这样独占系统资源,由于线程可以执行进程的任何代码段,且线程的运行是由系统调度自动完成的,具有一定的不确定性,因此就有可能出现两个线程同时对磁盘驱动器进程操作,从而出现操作错误。又例如,对于基于数据库应用程序来说,可以使用一个线程来更新其用户数据库,而用另外一个线程来读取数据库以响应用户的需求,极有可能读数据库的线程读取的是未完全跟新的数据库,因为可能在读的时候只有一部分数据被更新过。是隶属于同一进程的各线程协调一致地工作称为线程同步。
线程同步的基本思想就是避免多个线程对同一资源的访问,这个资源可以是一个对象,又可以是一个方法或代码。线程同步可以使用临界区、互斥量、信号量等方式实现。

线程同步可以使用临界区、互斥量和信号量等方式实现。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值