Summary of methods for creating threads in Java

Source: Internet
Author: User


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.

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.