文件数据的基于优先级的更新,并在Java中的多线程

问题描述 投票:0回答:2

我wan't给定的约束在任何给定时间来修改使用多线程的文件

  • 每个线程都有一个优先级正常或最大。
  • 文件包含一个表(让学生说(名称的标记,滚号)在一个特定的主题)。
  • 其可通过一个正常优先级的线程被修改任何线可通过任何线程在以后修改。
  • 一旦线由最高优先级的线程改性,正常优先级的线程不能修改该特定线。

调度线程访问文件是可行的,但限制从某些线程正在修改一些线是相当困难的我。我怎么能做到以上java的任务是什么?请回答我的问题考虑我很新在Java的Java,多线程/并发编程和文件的解析。提前致谢。

java multithreading fileparsing
2个回答
0
投票

按我的理解的设计可以是:

class ToothBrushHolder{
   List<ToothBrush> toothBrushList;
   ToothBrush pickToothBrush{
        ToothBrush:pick the tooth brush from list
         }
   void useToothBrush(ToothBrush toothBrush){
        synchronize(toothBrush){
        if(toothBrush.getLastUsedBy!= "particularThreadName"){
          //perform the action
           toothBrush.setLastUsedBy("ThreadName);
      }else
        { can't use brush
           }
 }
 }

class ToothBrush{
    String ToothBrushID;
    String LastUsedBy;//setThreadname
   }

-1
投票

正确控制文件中的特定行并发修改可能会特别困难,因为你是新来的Java并发。

如果文件不是太大,可能更容易读取到的标准数据结构(参见:https://docs.oracle.com/javase/8/docs/api/index.html?java/util/concurrent/package-summary.html),提供保证原子操作,或者创建自己的数据结构和实施用于更新数据结构的同步方法。

© www.soinside.com 2019 - 2024. All rights reserved.