如何创建Java线程

如何创建Java线程,java,multithreading,Java,Multithreading,我需要创建一个销售点应用程序。它有两个类,一个是POS,另一个是Bill POSclass创建Billclass的实例&Billclass处理计算最终账单的所有逻辑 有一个要求我不明白 类POS的单个实例应启动账单 界面应该是Bill Bill=pos.createBill()。许多客户端可以在单个pos实例上同时调用pos.createBill()方法,甚至可以从不同的线程调用 每次调用pos.createBill()都应该返回Bill类的新实例 Bill的实例将仅在创建它的一个线程中使用 我

我需要创建一个销售点应用程序。它有两个类,一个是
POS
,另一个是
Bill

POS
class创建
Bill
class的实例&
Bill
class处理计算最终账单的所有逻辑

有一个要求我不明白

POS
的单个实例应启动账单

  • 界面应该是
    Bill Bill=pos.createBill()
    。许多客户端可以在单个
    pos
    实例上同时调用
    pos.createBill()
    方法,甚至可以从不同的线程调用

  • 每次调用
    pos.createBill()
    都应该返回
    Bill
    类的新实例

  • Bill
    的实例将仅在创建它的一个线程中使用


  • 我不知道哪个类应该实现线程,我应该如何称呼它?

    POS应该使用singleton prattern

    在您的POS类中,您应该将线程声明为

        Bill bill = new Bill();
        synchronized(bill)
        {
            Thread t = new Thread() { public void run() { 
    
                   //  calls to bill.create bill.
    
            } };
            t.start();
            t.join();
        }
    
    同样如上所述,POS应该是单例的。

    为什么“每次调用POS.createBill()都应该返回Bill类的新实例。”???
    只需使用一个Bill对象

    Bill bill = pos.createBill()
    

    在全局位置(在Main或Form类中,在类内任何方法的外侧)创建此函数,并在方法调用中使用“Bill”。如果并且只有您的方法花费太多时间来执行一个任务,请将这些方法调用放在线程中。使用异步(异步)调用

    我觉得你不需要这么做,你呢?如果需要,它将在其他地方创建,比如在
    main
    …它说您必须在哪里编写创建新线程的代码?我哪儿都看不到。我所看到的只是要求pos.createBill()类必须是线程安全的,而非要求Bill实现不需要是线程安全的。