线程内容的放置。你怎么知道线程里面有什么,什么没有?
Placement of Thread Content. How do you know what goes inside of the thread, and what doesn't?
总的来说,这是一份研究生水平的家庭作业class,省略了很多作业,但我认为我给出的足够让我的问题清楚了。总之提示如下
提示:
假设您有一组文件 (file_0...file_N) 由一组线程 (thread_0...thread_m 访问).
还有一个 sharedstatus table 指示每个文件的状态(关闭、打开以供读取、打开以供写入)。当一个线程需要访问一个文件时,它必须首先
通过状态 table 检查文件的状态。
以下是选项:
如果文件已关闭,则立即授予访问权限。
如果文件打开进行写入,线程必须在队列中等待该文件。
如果文件打开以供读取并且新请求也是读取,则该文件的读取计数器会增加并授予访问权限。
如果文件打开用于读取并且新请求用于写入,线程将被放置在队列中以访问该文件。
使用 Lock 变量同步访问状态 table。状态 table 应该实现为 class;因此,线程必须在调用状态之前获得锁
table 方法。实际状态 table 可以用数组或 ArrayList 实现,其中元素是具有与单个文件相关的属性(状态、读取计数等)的对象。
结束提示
现在,鉴于此,我被困在哪里?我假设我们至少需要一个主线程、一个线程 table 和一个线程 class。我通常更喜欢保持 main 干净,所以我使用第四个 class 来完成大部分工作,并简单地让 main 引用它。
主要问题是所有这些是如何构建的?我多次尝试构建它,到目前为止,所有这些都导致了冲突,或者根本没有意义的事情。我当前的迭代包含主要功能 class 中的所有内容,但线程是空的,留下几乎一个 class 带有封装变量,另一个带有内容。
更简洁地说,这是我的问题。
- read/write 操作的决定逻辑在哪里?螺纹内还是螺纹外?
- 实际读取文件的位置在哪里?螺纹内还是螺纹外?
- 一般来说,关于这种类型的编程,什么会进入线程?
- 我没有将什么放入线程中?
你可能需要一个 ReadWriteLock 来完成你被要求做的大部分事情。
Where would the deciding logic be for a read/write operation? Inside or outside of the thread?
每个线程必须使用锁来锁定它需要的资源,这样逻辑就在线程中(或者使用线程使用的其他东西)。
Where would actually reading the file occur? Inside or outside of the thread?
在线程中 - 在您锁定资源之后。
What, in general, would go into a thread in regards to this type of programming?
只有属于那里的东西 - 没有别的:)
What exactly do I NOT put into a thread?
UI(用户界面)代码。
总的来说,这是一份研究生水平的家庭作业class,省略了很多作业,但我认为我给出的足够让我的问题清楚了。总之提示如下
提示:
假设您有一组文件 (file_0...file_N) 由一组线程 (thread_0...thread_m 访问).
还有一个 sharedstatus table 指示每个文件的状态(关闭、打开以供读取、打开以供写入)。当一个线程需要访问一个文件时,它必须首先
通过状态 table 检查文件的状态。
以下是选项:
如果文件已关闭,则立即授予访问权限。
如果文件打开进行写入,线程必须在队列中等待该文件。
如果文件打开以供读取并且新请求也是读取,则该文件的读取计数器会增加并授予访问权限。
如果文件打开用于读取并且新请求用于写入,线程将被放置在队列中以访问该文件。
使用 Lock 变量同步访问状态 table。状态 table 应该实现为 class;因此,线程必须在调用状态之前获得锁 table 方法。实际状态 table 可以用数组或 ArrayList 实现,其中元素是具有与单个文件相关的属性(状态、读取计数等)的对象。
结束提示
现在,鉴于此,我被困在哪里?我假设我们至少需要一个主线程、一个线程 table 和一个线程 class。我通常更喜欢保持 main 干净,所以我使用第四个 class 来完成大部分工作,并简单地让 main 引用它。
主要问题是所有这些是如何构建的?我多次尝试构建它,到目前为止,所有这些都导致了冲突,或者根本没有意义的事情。我当前的迭代包含主要功能 class 中的所有内容,但线程是空的,留下几乎一个 class 带有封装变量,另一个带有内容。
更简洁地说,这是我的问题。
- read/write 操作的决定逻辑在哪里?螺纹内还是螺纹外?
- 实际读取文件的位置在哪里?螺纹内还是螺纹外?
- 一般来说,关于这种类型的编程,什么会进入线程?
- 我没有将什么放入线程中?
你可能需要一个 ReadWriteLock 来完成你被要求做的大部分事情。
Where would the deciding logic be for a read/write operation? Inside or outside of the thread?
每个线程必须使用锁来锁定它需要的资源,这样逻辑就在线程中(或者使用线程使用的其他东西)。
Where would actually reading the file occur? Inside or outside of the thread?
在线程中 - 在您锁定资源之后。
What, in general, would go into a thread in regards to this type of programming?
只有属于那里的东西 - 没有别的:)
What exactly do I NOT put into a thread?
UI(用户界面)代码。