一个进程中的线程一般使用lock和Monitor来进行同步。控制对临界资源的访问
对于2个进程可以用Mutex.1:我想问下,对于同一个程序,起多个进程,如果是操作同一个资源是不是也用Mutex来控制?2:还有个问题就是对数据库的操作。比如一个订票系统里,一般是在程序里控制同步还是在数据库中控制?在数据库中如何控制?3:比如一个用户报装系统,如何防止多个进程同时提交请求时分配的用户号相同?一般是在程序中对产生用户号的函数进行同步,还是在数据库中产生一个序列。用数据库产生的话如何实现同步?和第2个问题差不多。谢谢!
对于2个进程可以用Mutex.1:我想问下,对于同一个程序,起多个进程,如果是操作同一个资源是不是也用Mutex来控制?2:还有个问题就是对数据库的操作。比如一个订票系统里,一般是在程序里控制同步还是在数据库中控制?在数据库中如何控制?3:比如一个用户报装系统,如何防止多个进程同时提交请求时分配的用户号相同?一般是在程序中对产生用户号的函数进行同步,还是在数据库中产生一个序列。用数据库产生的话如何实现同步?和第2个问题差不多。谢谢!
2.数据库操作用用事务,当然你要是在程序里控制业务逻辑也需要用到同步
3.用数据库的话就是事物,我个人实现的话会在程序里做速度快
yes
2:还有个问题就是对数据库的操作。比如一个订票系统里,一般是在程序里控制同步还是在数据库中控制?在数据库中如何控制?
transaction
3:比如一个用户报装系统,如何防止多个进程同时提交请求时分配的用户号相同?一般是在程序中对产生用户号的函数进行同步,还是在数据库中产生一个序列。
在数据库中产生一个序列, use an atomic stored procedure to get an increased serial number.
2.数据库操作用用事务,当然你要是在程序里控制业务逻辑也需要用到同步 我看ORACLE里,比如我在updae一个数据,但没有commit,这个时这一行是被锁了的,而另一个用户此时是修改不了的。这个好象是数据库会自己控制把?
如果我前,后台都不进行同步控制,好象有多个用户提交申请的时候也是只有1个回成功把!3.用数据库的话就是事物,我个人实现的话会在程序里做速度快。我想问下,比如我程序里一个函数产生用户号。程序是多线程的,而同时有会多个客户端运行这个进程。那么我是不是需要用lock和Mutex一起来进行线程以及进程的控制
如果我前,后台都不进行同步控制,好象有多个用户提交申请的时候也是只有1个回成功把!
=========================================================================
你用ado.net操作oracle的时候,一条sql语句就是一个隐形事务,但是你如果有多条sql语句就需要在程序里开显示事务,或者写存储过程
用lock就行了,但是你处理完序号以后需要同步会数据库中。之所以会在程序里控制序号,是因为序号不是简单的自增号,如果是简单的自增号利用数据库产生,效率高