1. Inherit thread
Java
public class Java_thread extends thread{
public static void Main (String args[])
{
(New Java_thread ()). Run ();
System.out.println ("Main thread Run");
}
Public synchronized void Run ()
{
SYSTEM.OUT.PRINTLN ("Sub thread Run");
}
}
2. Implement Runnable interface
Java
public class Java_thread implements runnable{
public static void Main (String args[])
{
(New Thread (New Java_thread ()). Start ();
System.out.println ("Main thread Run");
}
public void Run ()
{
SYSTEM.OUT.PRINTLN ("Sub thread Run");
}
}
3. Use directly in the function body
void Java_thread ()
{
Thread t = new Thread (new Runnable () {
public void Run () {
Msoundpoolmap.put (Index, Msoundpool.load (FilePath, index));
Getthis (). Loadmediacomplete ();
}});
T.start ();
}
1, inherits from the thread class, the code logic writes in the child thread, needs to rewrite the run () method, the main line Chengri start () is OK
Package com.myjava.thread;
public class Extendsthread extends thread{
Private final static int thread_num = 5;
public static void Main (string[] args) {
for (int i = 0; I <THREAD_NUM; i++) {
New Extendsthread ("Thread" +i). Start ();
}
}
Public Extendsthread (String name) {
Super (name);
}
@Override
public void Run () {
TODO auto-generated Method Stub
for (int i = 0; I < this. Thread_num; i++) {
System.out.println (This.getname () +i);
}
}
}
Run Result:
Thread00
Thread01
Thread02
Thread03
Thread04
Thread20
Thread21
Thread22
Thread23
Thread24
Thread40
Thread41
Thread42
Thread43
Thread44
Thread10
Thread11
Thread12
Thread13
Thread14
Thread30
Thread31
Thread32
Thread33
Thread34
2, realize runnable interface
Package com.myjava.thread;
public class Implrunnable implements Runnable {
private static final int thread_num = 5;
@Override
public void Run () {
for (int i = 0; i < Thread_num; i++) {
System.out.println (Thread.CurrentThread (). GetName () +i);
}
}
public static void Main (string[] args) {
TODO auto-generated Method Stub
for (int j = 0; J < Thread_num; J + +) {
Implrunnable implrunnable= new implrunnable ();
New Thread (implrunnable, "thread" +j). Start ();
}
}
}
Run results
Thread10
Thread11
Thread12
Thread13
Thread14
Thread30
Thread31
Thread32
Thread33
Thread34
Thread00
Thread01
Thread02
Thread03
Thread04
Thread20
Thread21
Thread22
Thread23
Thread24
Thread40
Thread41
Thread42
Thread43
Thread44
3, through the thread pool
Package com.myjava.thread;
Import Java.util.concurrent.ExecutorService;
Import java.util.concurrent.Executors;
public class ThreadPool {
private static int pool_num = 10;
public static void Main (string[] agrs) {
Executorservice Executorservice = Executors.newfixedthreadpool (5);
for (int i = 0; i < Pool_num; i++) {
Runnablethread thread = new Runnablethread ();
Executorservice.execute (thread);
}
}
}
Class Runnablethread implements runnable{
private int thread_num = 10;
public void Run () {
for (int i = 0; I <THREAD_NUM; i++) {
SYSTEM.OUT.PRINTLN ("Thread" +thread.currentthread () +i);
}
}
}
-----
Thread thread[pool-1-thread-2,5,main]0
Thread thread[pool-1-thread-2,5,main]1
Thread thread[pool-1-thread-2,5,main]2
Thread Thread[pool-1-thread-2,5,main]3
Thread Thread[pool-1-thread-2,5,main]4
Thread Thread[pool-1-thread-2,5,main]5
Thread Thread[pool-1-thread-2,5,main]6
Thread Thread[pool-1-thread-2,5,main]7
Thread Thread[pool-1-thread-2,5,main]8
Thread thread[pool-1-thread-2,5,main]9
Thread thread[pool-1-thread-4,5,main]0
Thread thread[pool-1-thread-4,5,main]1
Thread thread[pool-1-thread-4,5,main]2
Thread Thread[pool-1-thread-4,5,main]3
Thread Thread[pool-1-thread-4,5,main]4
Thread Thread[pool-1-thread-4,5,main]5
Thread Thread[pool-1-thread-4,5,main]6
Thread Thread[pool-1-thread-4,5,main]7
Thread Thread[pool-1-thread-4,5,main]8
Thread thread[pool-1-thread-4,5,main]9
Thread thread[pool-1-thread-4,5,main]0
Thread thread[pool-1-thread-4,5,main]1
Thread thread[pool-1-thread-4,5,main]2
Thread Thread[pool-1-thread-4,5,main]3
Thread Thread[pool-1-thread-4,5,main]4
Thread Thread[pool-1-thread-4,5,main]5
Thread Thread[pool-1-thread-4,5,main]6
Thread Thread[pool-1-thread-4,5,main]7
Thread Thread[pool-1-thread-4,5,main]8
Thread thread[pool-1-thread-4,5,main]9
Thread thread[pool-1-thread-1,5,main]0
Thread thread[pool-1-thread-1,5,main]1
Thread thread[pool-1-thread-1,5,main]2
Thread Thread[pool-1-thread-1,5,main]3
Thread Thread[pool-1-thread-1,5,main]4
Thread Thread[pool-1-thread-1,5,main]5
Thread Thread[pool-1-thread-1,5,main]6
Thread Thread[pool-1-thread-1,5,main]7
Thread Thread[pool-1-thread-1,5,main]8
Thread thread[pool-1-thread-1,5,main]9
Thread thread[pool-1-thread-5,5,main]0
Thread thread[pool-1-thread-5,5,main]1
Thread thread[pool-1-thread-5,5,main]2
Thread Thread[pool-1-thread-5,5,main]3
Thread Thread[pool-1-thread-5,5,main]4
Thread Thread[pool-1-thread-5,5,main]5
Thread Thread[pool-1-thread-5,5,main]6
Thread Thread[pool-1-thread-5,5,main]7
Thread Thread[pool-1-thread-5,5,main]8
Thread thread[pool-1-thread-5,5,main]9
Thread thread[pool-1-thread-3,5,main]0
Thread thread[pool-1-thread-3,5,main]1
Thread thread[pool-1-thread-3,5,main]2
Thread Thread[pool-1-thread-3,5,main]3
Thread Thread[pool-1-thread-3,5,main]4
Thread Thread[pool-1-thread-3,5,main]5
Thread Thread[pool-1-thread-3,5,main]6
Thread Thread[pool-1-thread-3,5,main]7
Thread Thread[pool-1-thread-3,5,main]8
Thread thread[pool-1-thread-3,5,main]9
Thread thread[pool-1-thread-2,5,main]0
Thread thread[pool-1-thread-2,5,main]1
Thread thread[pool-1-thread-2,5,main]2
Thread Thread[pool-1-thread-2,5,main]3
Thread Thread[pool-1-thread-2,5,main]4
Thread Thread[pool-1-thread-2,5,main]5
Thread Thread[pool-1-thread-2,5,main]6
Thread Thread[pool-1-thread-2,5,main]7
Thread Thread[pool-1-thread-2,5,main]8
Thread thread[pool-1-thread-2,5,main]9
Thread thread[pool-1-thread-2,5,main]0
Thread thread[pool-1-thread-2,5,main]1
Thread thread[pool-1-thread-2,5,main]2
Thread Thread[pool-1-thread-2,5,main]3
Thread Thread[pool-1-thread-2,5,main]4
Thread Thread[pool-1-thread-2,5,main]5
Thread Thread[pool-1-thread-2,5,main]6
Thread Thread[pool-1-thread-2,5,main]7
Thread Thread[pool-1-thread-2,5,main]8
Thread thread[pool-1-thread-2,5,main]9
Thread thread[pool-1-thread-2,5,main]0
Thread thread[pool-1-thread-2,5,main]1
Thread thread[pool-1-thread-2,5,main]2
Thread Thread[pool-1-thread-2,5,main]3
Thread Thread[pool-1-thread-2,5,main]4
Thread Thread[pool-1-thread-2,5,main]5
Thread Thread[pool-1-thread-2,5,main]6
Thread Thread[pool-1-thread-2,5,main]7
Thread Thread[pool-1-thread-2,5,main]8
Thread thread[pool-1-thread-2,5,main]9
Thread thread[pool-1-thread-2,5,main]0
Thread thread[pool-1-thread-2,5,main]1
Thread thread[pool-1-thread-2,5,main]2
Thread Thread[pool-1-thread-2,5,main]3
Thread Thread[pool-1-thread-2,5,main]4
Thread Thread[pool-1-thread-2,5,main]5
Thread Thread[pool-1-thread-2,5,main]6
Thread Thread[pool-1-thread-2,5,main]7
Thread Thread[pool-1-thread-2,5,main]8
Thread thread[pool-1-thread-2,5,main]9
4. Comparison:
Achieve Runnable Interface Advantages:
1 A thread that fits multiple identical program codes to handle the same resource
2 to avoid the limitations of single inheritance in Java
3 Increase the robustness of the program, code can be shared by multiple threads, code and data Independent.
Inherit Thread class Advantages:
1 The thread class can be abstracted when the abstract factory pattern design is needed.
2) Multithreading synchronization
Use advantage in function body
1 do not need to inherit thread or implement runnable, narrowing the scope.