use*_*714 1 java multithreading
在这里遇到问题,我一直在学习java中的线程我理解如果你正在扩展一个线程,你将在main中创建一个线程,如下所示.
Card thread1 = new Card("Ace");
Run Code Online (Sandbox Code Playgroud)
这将来自一个名为带有构造函数的线程的类
public thread(String n);
Run Code Online (Sandbox Code Playgroud)
但我给构造函数一个多参数:
public Person(int PersonID, Direction direction, StairLock stairLock)
Run Code Online (Sandbox Code Playgroud)
并要求为4个人中的每个人创建一个线程,其中两个人上升,2个人下楼和锁定楼梯,我不确定如何做到这一点任何帮助或方向都会有所帮助
您的问题存在多个问题.
super(String)以将线程名称传递给超类线程.因此,在构造函数中Person,您可以Thread使用所需的线程名称立即调用此构造函数.始终将线程命名为调试标识是一种很好的做法.thread,但你应该知道这是不同的Thread.Java中的类应始终以大写字母开头.如果你自己thread创建了一个类,那么你实际上并没有创建一个主题.Card或一个Person班级需要扩展Thread.除非您只是为此示例选择随机名称,否则这些类听起来更像是数据对象而不是线程.如果是这种情况,您可能需要考虑让一个单独的类Thread处理楼梯上下移动,并为每个线程提供自己的Person类实例来处理.考虑到所有这些,如果你被要求为每个人创建一个线程Person来处理它的移动,我建议你创建一个单独的类Person来执行此操作.在构造函数中扩展Thread或实现Runnable并获取Person.这两个类都使用.run()您必须实现的方法来执行线程的工作负载.使用a Thread,您可以实例化它并调用它.start().有了Runnable,你必须创建一个新的Thread,并通过Runnable作为参数传递给构造函数,然后调用.start()上Thread.
许多人更喜欢使用这种Runnable方法,但结果几乎都是相同的.如果您正在处理线程,那么您应该熟悉这两种方法.