晕啊,哈哈。
定义一个Thread类的子类,假如名字就St,St会继承Thread类中的方法,也可以自定义方法,这和接口是类似的。
可是要用St里面的方法,就必须创建子类St的对象,并且调用start()方法启动线程,St中run()方法内的代码势必会运行,如果run()方法内的代码运行完毕,线程就消亡了,定义的其他非静态方法也就没法运行了!对象都没了不是吗? 也可以在run()方法内调用这些自定义的方法,但是这些方法在新建的线程启动以后,是一定会无选择地运行的!不管你乐不乐意。
定义一个类实现一个接口,实现接口中的方法,这些方法是可以选择使用的。
线程的作用不在继承方法,在于重写run()方法,同时操作共享数据(公共资源:同时卖同一天的票、同时用一台打印机、同时上一个厕所...),但彼此应该是同步的,有人用打印机了,咱就先等等,有人去第九期了,咱就等第十期吧!
|