多线程运行一个进程不会出现问题吗

[复制链接]
查看11 | 回复2 | 2012-9-13 20:31:59 | 显示全部楼层 |阅读模式
多个线程同时运行一个程序不会出现并发问题吗?就是因为会出现同步问题,所以每个操作系统都会采取一系列的线程同步机制啊。 两个线程使用一个变量,如果第一个线程修改了该变量,第二个线程再使用,不是就出问题了吗?是的,这种情况被称为竞争,操作系统会提供临界区、旋转锁、互斥量、信号量等对象对多个线程竞争的资源进行保护,确保该资源在某一时间只有一个线程对它进行操作。 对于一个函数,使用多线程的话,那多个线程也不能同时运行啊,肯定是按照程序代码的顺序依次执行啊?由于一个进程的所有线程共享该进程的内存空间,且代码段只读不可写,所以多个线程同时执行一个函数的代码段是可行的,只是系统会为每个线程开辟各自独立的函数栈,所以虽然每个线程可能同时执行...
回复

使用道具 举报

千问 | 2012-9-13 20:31:59 | 显示全部楼层
1.不采取同步措施的话会出现你所谓的并发问题,多线程编程的关键就是同步。2.对于函数,代码是共享,而函数中的变量不共享,所以任意多个线程执行相同的函数都不会出现问题。 (前提是这个函数中不存在全局变量)...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行