收藏此站 联系我们 网站
当前位置:首页» 行业网站案例 » 【建站服务】西安爱采购会员/58同城会员账户/百度竞价开户/百家号注册运营/推广公司网站-网站营销全网推广-域名申请

【建站服务】西安爱采购会员/58同城会员账户/百度竞价开户/百家号注册运营/推广公司网站-网站营销全网推广-域名申请

作者: 风兰 . 阅读量: 7 . 发表时间:2022-09-21 05:28:07

网站建设

上往建站提供服务器空间服务商百度快照排名网站托管百度推广运营,致力于设计外包服务与源代码定制开发360推广搜狗推广,增加网站的能见度及访问量提升网络营销的效果,主营:网站公司,百度推广公司电话,官网搭建服务,网站服务企业排名,服务器空间,英文域名等业务,专业团队服务,效果好。


西安爱采购会员/58同城会员账户/百度竞价开户/百家号注册运营/推广公司网站-网站营销全网推广

网站建设.png

):使用Runnable接口创建线程池

使用线程池中线程对象的步骤:

  •  1、创建线程池对象

  •  2、创建 Runnable 接口子类对象

  •  3、提交 Runnable 接口子类对象

  •  4、关闭线程池

Test.java 代码如下:

import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;public class Test {
    public static void main(String[] args) {
        //创建线程池对象  参数5,代表有5个线程的线程池
        ExecutorService service = Executors.newFixedThreadPool(5);
        //创建Runnable线程任务对象
        TaskRunnable task = new TaskRunnable();
        //从线程池中获取线程对象
        service.submit(task);
        System.out.println("----------------------");
        //再获取一个线程对象
        service.submit(task);
        //关闭线程池
        service.shutdown();
    }}

TaskRunnable.java 接口文件如下:

public class TaskRunnable implements Runnable{
    @Override
    public void run() {
        for (int i = 0; i < 1000; i++) {
            System.out.println("自定义线程任务在执行"+i);
        }
    }}

2)使用Callable接口创建线程池

Callable接口:与Runnable接口功能相似,用来指定线程的任务。其中的call()方法,用来返回线程任务执行完毕后的结果,call方法可抛出异常。

ExecutorService:线程池类

<T> Future<T> submit(Callable<T> task):获取线程池中的某一个线程对象,并执行线程中的 call() 方法

Future 接口:用来记录线程任务执行完毕后产生的结果。线程池创建与使用

使用线程池中线程对象的步骤:

  •  1、创建线程池对象

  •  2、创建 Callable 接口子类对象

  •  3、提交 Callable 接口子类对象

  •  4、关闭线程池

Test.java 代码如下:

import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;public class Test{
    public static void main(String[] args) {
        ExecutorService service = Executors.newFixedThreadPool(3);
        TaskCallable c = new TaskCallable();
        //线程池中获取线程对象,调用run方法
        service.submit(c);
        //再获取一个
        service.submit(c);
        //关闭线程池
        service.shutdown();
    }}

TaskCallable.java 接口文件如下:


import java.util.concurrent.Executors;


public class Test{

    public static void main(String[] args) {

        ExecutorService service = Executors.newFixedThreadPool(3);

        TaskCallable c = new TaskCallable();

        //线程池中获取线程对象,调用run方法

        service.submit(c);

        //再获取一个

        service.submit(c);

        //关闭线程池

        service.shutdown();

    }

}

TaskCallable.java 接口文件如下:


import java.util.concurrent.Callable;


public class TaskCallable implements Callable<Object>{

    @Override

    public Object call() throws Exception {

        for (int i = 0; i < 1000; i++) {

            System.out.println("自定义线程任务在执行"+i);

        }

        return null;

    }

}

dg5uw

   dg5uw


  159***75112@139.com


5年前 (2018-03-05)

   dg5uw


  159***75112@139.com


38

线程池练习:返回两个数相加的结果


要求:通过线程池中的线程对象,使用Callable接口完成两个数求和操作


Future 接口:用来记录线程任务执行完毕后产生的结果。


线程池创建与使用:get() 获取 Future对象中封装的数据结果


ThreadPoolDemo.java 文件代码如下:


import java.util.concurrent.ExecutionException;

import java.util.concurrent.ExecutorService;

import java.util.concurrent.Executors;

import java.util.concurrent.Future;


public class ThreadPoolDemo {

    public static void main(String[] args) throws InterruptedException, ExecutionException {

        //创建线程池对象

        ExecutorService threadPool = Executors.newFixedThreadPool(2);

        

        //创建一个Callable接口子类对象

        //MyCallable c = new MyCallable();

        MyCallable c = new MyCallable(100, 200);

        MyCallable c2 = new MyCallable(10, 20);

        

        //获取线程池中的线程,调用Callable接口子类对象中的call()方法, 完成求和操作

        //<Integer> Future<Integer> submit(Callable<Integer> task)

        // Future 结果对象

        Future<Integer> result = threadPool.submit(c);

        //此 Future 的 get 方法所返回的结果类型

        Integer sum = result.get();

        System.out.println("sum=" + sum);

        

        //再演示

        result = threadPool.submit(c2);

        sum = result.get();

        System.out.println("sum=" + sum);

        //关闭线程池(可以不关闭)

        

    }

}

MyCallable.java 接口文件代码如下:


import java.util.concurrent.Callable;


public class MyCallable implements Callable<Integer> {

    //成员变量

    int x = 5;

    int y = 3;

    //构造方法

    public MyCallable(){

    }

    public MyCallable(int x, int y){

        this.x = x;

        this.y = y;

    }


    @Override

    public Integer call() throws Exception {

        return x+y;

    }

}

dg5uw

   dg5uw


  159***75112@139.com


5年前 (2018-03-05)

   0℃space


  960***125@qq.com


26

进程和线程的区别


西安爱采购会员/58同城会员账户/百度竞价开户/百家号注册运营/推广公司网站-网站营销全网推广


上往建站提供搭建网站域名注册官网备案服务网店详情页设计企业网店专业网络店铺管理运营全托管公司咨询电话,服务器空间,微信公众号托管网页美工排版,致力于域名申请竞价托管软文推广全网营销,提供标准级专业技术保障,了却后顾之忧,主营:虚拟主机网站推广百度竞价托管网站建设上网建站推广服务网络公司有哪些等业务,专业团队服务,效果好。

服务热线:400-111-6878 手机微信同号:18118153152(各城市商务人员可上门服务)


关键词:网站建设,企业网站,网站制作,网页设计,高端网站建设,企业网站制作,网页制作,制作网站,网站设计,高端网页设计,高端网站设计,做网站,自适应网站

全国服务热线
18114747181
二维码
手机端二维码
上往建站
地址:全国各地都有驻点商务 |  网站建设上往建站
在线咨询QQ:1120768800
 
QQ在线咨询
售前咨询热线
18114747181
营销顾问
营销顾问
售后服务热线
400-000-1116
售后服务
售后服务