【发布时间】:2019-09-29 19:11:21
【问题描述】:
我正在编写两个模拟银行服务的程序。有服务器程序和用户程序。服务器设置多个线程,这些线程充当“电子计数器”,读取用户的请求并按他们说的做。
用户的帐户存储在一个数组内的服务器上,可以根据请求访问它们。我的问题如下:假设线程 A 正在将钱从 John 转移到 Maria。如何在交易进行时阻止其他线程访问 John 和 Maria 的帐户?我知道信号量、互斥体和条件变量,但是我找不到一种方法来使用它们,并且不会阻止对整个数组的访问。
编辑:我被告知要创建 N 个互斥体,其中 N = 帐户数,并且每个互斥体都与一个帐户相关联。有没有更好的办法来解决这个问题?
【问题讨论】:
-
提示 - 互斥量和信号量。运行将保存并处理所有排除项的中间进程。您还可以将互斥锁与数组元素关联
-
@P__J__ “运行将保存并处理所有排除项的中间过程”是什么意思?你能详细说明一下吗?
标签: c multithreading synchronization pthreads