开多线程进行海量处理,可能出现哪些问题??
开多线程进行海量处理,可能出现哪些问题,要怎么解决呢?比如读写冲突,资源释放等问题。。。程序老是会半路死掉,一筹莫展!! 如果是对共享资源的访问就要注意了,做好互斥访问,同时要防止死锁的发生。
如果没有处理好互斥的话,一种情况是多个请求同时对同一个资源进行写操作,
一种情况是有请求正在读,但有的请求正在写,读请求读出的数据成为脏数据。
一种情况是进行了互斥访问了,但对于锁机制没有做好,导致死等待,比如A请
求了X资源,锁定了它,同时B请求了Y资源,锁定了它,这本来没有什么问题的,
但接着A再去请求Y资源,于是A等待B释放Y,在A等待过程中,B也对X资源进行了
请求,于是B在等A释放X,大家死等对方释放,形成僵尸。 学习下,原来我那个也是考虑多线程的,不过就一个设备,想想比较没必要。 原帖由 sissi 于 2006-5-24 13:46 发表
开多线程进行海量处理,可能出现哪些问题,要怎么解决呢?比如读写冲突,资源释放等问题。。。
程序老是会半路死掉,一筹莫展!!
多线程不是可以随便用的,通常用于有阻塞的函数。如果线程太多而且锁比较多的话,效率反而会很低。把你的具体情况拿出来讨论吧,就这样“开多线程海量处理”我们能给什么意见? 多线程海量处理……什么概念…………表达不清……
页:
[1]