1.多个用户访问同一段代码算多线程吗?
2.通常说的并发是不是针对多线程的?
3.那怎么样控制并发?
答:
1.不是,多个用户访问同一段代码不能算做是多线程。比如一个多个用户同时访问同一个网页,这也是访问同一段代码啊,但很明显就不是多线程。
独立运行的程序片段称作为线程,多线程可以理解为一个程序中的某个片段同时被多个任务调用执行,形成并发的多个线程,能够独立运行,互不干扰,也可以互相通信。QQ就是典型例子,每开一个聊天窗口就创建了一个进程,你泡你的妞我泡我的妞,互不干涉,高兴的话我们也可以交流一下泡妞经验(不同线程之间通信,最终都要返回主进程),大致就是这个意思了。
2.不是,并发是多个用户或者说多个请求要同时对同一条记录进行操作,和是不是同一段代码没关系。好比说多个用户同时登陆一个系统时,都需要用到登陆的相关代码,是不会发生什么冲突的。好比说对一个财务系统,两个人同时对总钱数进行操作,一个加10块一个减100块,注意这两个操作是同时进行的,那系统就不知道是加还是减了,这是并发问题。
3.锁,加锁解决就是,在一个请求开始对这条记录操作时,其它的请求就不能对它操作了,直到现在正在进行的操作完成。