main下定义了两个线程,运行时,两个线程都不执行,直接退出
Thread t1 = new Thread(new ParameterizedThreadStart(Properties));//t1线程调用带参数的Properties方法 Thread t2 = new Thread(new ParameterizedThreadStart(Consumer));//t2线程调用带参数的Consumer方法 t1.IsBackground = true; t2.IsBackground = true; t1.Start(prop); //prop为Properties方法的实参
t2.Start(con); //con为Consumer方法的实参
第一种方案是:
将 IsBackground 注释掉,这个参数是后台执行的意思,这样主线程就不知道子线程的情况了,所有直接下一步了
还有一种方案是:
t1.Join();//阻塞主线程 t2.Join();//阻塞主线程
在下面加上这两句,用于阻塞主线程,场景是可以在下面执行第三个线程,这样就是等前面所有线程执行后,再执行接下来的线程,不然所有线程都并发了,没有交互。
完!