线程返回值以及线程锁
来源:互联网 发布:阿里云服务器能翻墙么 编辑:程序博客网 时间:2024/06/05 16:27
线程返回值以及线程锁
public String Threads() {Object[] obj = null;//获取从线程中返回的数据ExecutorService exs=Executors.newCachedThreadPool(); ArrayList<Future<Object[]>> al=new ArrayList<Future<Object[]>>(); //submit()方法返回一个Futrue对象,可以通过调用该对象的get方法取得返回值。 al.add(exs.submit(new Thread(string,class))); //new Thread(string,class)是调用的有参重载那个方法 for(Future<Object[]> fs:al){ try { obj=fs.get();//从线程中返回的数据放到obj中 } catch (InterruptedException e) { e.printStackTrace(); } catch (ExecutionException e) { e.printStackTrace(); } } return null;}
实现一个Thread类
//线程类,必须实现Callable接口,返回类型可以随意定义,根据需求定义public class Thread implements Callable<Object[]>{//如果需要向线程中传值,用private定义一下便可,然后在实现一个有参重载方法private String string;//传的值private Class class;//传的实体类public Thread(String string, Class class) {this.string = string;this.class = class;}@Overridepublic Object[] call() throws Exception { //进入线程锁中执行具体的方法。//如果不需要线程锁,在abc方法中把synchronized去掉便可return abc(string, class);}//synchronized是锁的意思(如有不明白在网上查询一下),我在此处处理高并发。//此方法是线程进来以后如果有线程在执行此方法,那么该线程必须等待,等上一个线程走完以后,该线程才能执行该方法。//举个例子:奥迪,宝马,奔驰同时进入到该线程中,奥迪运气好,奥迪先进入到abc方法中,那么宝马和奔驰必须等奥迪出来,宝马才能进去,等宝马出来奔驰才能<span style="white-space:pre"></span>进去,当然谁先进谁先出是线程自己分配的。public static synchronized Object[] abc(String string, Class class) {//此处是你要处理的代码,最后放入obj中返回便可return obj; }
1 0
- 线程返回值以及线程锁
- Linux进程切换以及内核线程的返回值
- Linux进程切换以及内核线程的返回值
- java给线程传递参数以及得到返回值
- Linux进程切换以及内核线程的返回值
- 线程返回值问题
- Java线程-有返回值的线程
- 线程等待与线程的返回值
- Java线程:有返回值的线程
- java--线程--有返回值的线程
- 从子线程返回值
- 有返回值的线程
- 有返回值的线程
- 有返回值的线程
- 带返回值的线程
- java线程 返回值-回调
- 有返回值的线程
- Callable 获取线程返回值
- 开源框架OKHttp的使用01-基础
- 如何查看ubuntu版本
- AndroidStudio的安装,更新,以及一些使用技巧
- AES的五种加密模式
- How to config ReaderView of Firefox to print best fitable PDF.
- 线程返回值以及线程锁
- C#界面设计之文本阅读器的设计
- 通过Html启动IOS的APP
- 数据库分表处理设计思想和实现
- Yii2.0 ActiveForm 表单应用整理
- Struts2 Result详解
- 程序源入坑之路3
- 趣味编程_8棋皇后
- 使用lldb 和debugsever 调试程序