您好,登录后才能下订单哦!
密码登录
登录注册
点击 登录注册 即表示同意《亿速云用户服务条款》
Java中怎么实现线程编程,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。
1、继承Thread
public class T4 { public static void main(String[] args) { System.out.println(Thread.currentThread()); Thread t1 = new A1(); t1.start(); } } class A1 extends Thread{ @Override public void run() { for(int i=0;i<10;i++) { System.out.println("Thread:"+Thread.currentThread().getName()); } } }
2、实现Runnable接口
public class T3 { public static void main(String[] args) { System.out.println("Thread:"+Thread.currentThread().getName()); Thread t1 = new Thread(new A2()); t1.start(); } } class A2 implements Runnable{ @Override public void run() { int res =0; for(int i=0;i<10;i++) { res+=i; System.out.println("Thread:"+Thread.currentThread().getName()); } } }
3、使用Callable和Future接口创建线程
import java.util.concurrent.Callable; import java.util.concurrent.FutureTask; public class T2 { public static void main(String[] args) throws Exception { System.out.println("Test3:" + Thread.currentThread().getName()); Callable c = new A4(); FutureTask ft = new FutureTask(c); Thread t1 = new Thread(ft); t1.start(); Object res = ft.get(); System.out.println("结果:" + res); } } class A4 implements Callable { @Override public Object call() throws Exception { int res = 0; for (int i = 0; i < 10; i++) { res += i; System.out.println("Thread:" + Thread.currentThread().getName()); } return res; } }
4、使用线程池创建线程
享元模式
享元模式Flyweight Pattern主要用于减少创建对象的数量,以减少内存占用和提高性能。这种类型的设计模式属于 结构型模式,它提供了减少对象数量从而改善应用所需的对象结构的方式
优点:大大减少对象的创建,降低系统内存的使用,以提高程序的执行效率。
缺点:提高了系统的复杂度,需要分离出外部状态和内部状态,而且外部状态具有固有化的性质,不应该随着内部 状态的变化而变化,否则会造成系统的混乱。
import java.util.concurrent.Callable; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.concurrent.Future; public class T1 { public static void main(String[] args) throws Exception { Future[] arr = new Future[5]; ExecutorService es = Executors.newFixedThreadPool(3); for (int i = 0; i < 5; i++) { arr[i] = es.submit(new A4()); } for (Future f : arr) { Object res = f.get(); System.out.println("结果为:" + res); } es.shutdown(); } } class A4 implements Callable { @Override public Object call() throws Exception { int res = 0; for (int i = 0; i < 10; i++) { res += i; System.out.println("Thread" + Thread.currentThread().getName()); } return res; } }
关于Java中怎么实现线程编程问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注亿速云行业资讯频道了解更多相关知识。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。