虽然用java好几年了,但是多线程一直很少接触。 今天简单的重学了一下,记录点心得。
java实现多线程主要有两种方法。
1. 继承Thread类
网上有很多样例,我就不贴图了。 将要实现多线程的方法写入run()方法内,令该类继承Thread。 使用时实例化该类的多个变量,分别调用其start()方法即可。
2. 继承Runnable类
实际上还是要通过Thread的实例的start()方法来执行。 同样将要多线程的方法写入run()方法,令该类继承Runnable类。 使用时创建若干(可以为一个)该类的实例,再分别以这些类的对象作为变量创建Thread的对象即可。
实际上,二者的区别很大。 虽然最终都是通过Thread类的start方法调用run方法实现多线程。 但是继承Thread相当于为每个线程创建一个thread实例。 不利于资源和变量的共享。 而继承Runnable则要更细致一些。我们可以只生成一个该类的对象,然后以这个类为参数生成多个Thread对象,着多个Thread对象共享一个Runnable的对象,实际上共享了这个Runnable对象的资源。 因而更普适一点