这个Java程序实现了一个简单的生产线模型,其中不同的线程处理不同的产品,然后最终的产品在结束节点中输出。引入 Scanner 类,用于读取输入定义。定义 readWrite 方法,用于控制线程的访问。在 myState 状态时,线程可以进行数据处理。否则,线程将等待直到状态为 myState。状态更新后,调用 notifyAll() 通知所有等待的线程。定义 ProcessNode 类,继承 Thread 类,表示生产节点。包含产品线对象 p,要处理的数据 data,当前状态 myState 和下一个状态 nextState。构造函数初始化生产节点的状态和数据。重写 run 方法,生产过程在这里进行。循环遍历 data 数组,调用 readWrite 方法以获得处理权并打印当前处理的数据。定义 EndNode 类,继承 Thread 类,表示结束节点。包含 ProductLine 对象,当前状态 myState,下一个状态 nextState,以及要完成的轮数 turn。 ProductLine 类,表示生产线。state 变量用于跟踪当前状态,初始值为0。构造函数为空。构造函数初始化结束节点的状态和轮数。重写 run 方法,负责执行结束操作。每完成一轮,打印输出。主类 和主方法 main 开始。定义三个字符串数组 s1, s2, s3,表示不同生产节点的处理数据。创建 ProductLine 实例 p。定义三个 ProcessNode 线程,分别命名为 j、y 和 b,并初始化它们,分别与字符串数组和状态进行关联。创建 EndNode 实例 end,与 ProductLine 关联。打印线程开始信息并启动所有线程。等待所有线程完成。使用 join 方法来确保主线程等待所有子线程结束。打印线程结束信息,主方法结束。