`

用线程调用方法

 
阅读更多

 

package nkc.util;

import java.util.concurrent.Callable;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.Future;

public class ExcutorUtil {

    private static ExcutorUtil util;
    //线程池数量
    private final int POOL_SIZE = 20;
    //线程池
    private static ExecutorService executorService;

    private ExcutorUtil() {
        executorService = Executors.newFixedThreadPool(Runtime.getRuntime().availableProcessors() * POOL_SIZE);
    }

    public synchronized void execute(Runnable task) {
        executorService.execute(task);
    }

    public synchronized Future<?> submit(Callable<?> task) {
        Future<?> f = executorService.submit(task);
        return f;
    }

    public static synchronized ExcutorUtil getSingleInstance() {
        if (util == null) {
            util = new ExcutorUtil();
        }
        return util;
    }

    public static void main(String[] args) {
        int index = 1;
        while (true) {
            test(index++);
        }

    }

    public static void test(final int index) {
        ExcutorUtil service = ExcutorUtil.getSingleInstance();
        service.execute(new Runnable() {

            public void run() {
                try {
                    Thread.sleep(5 * 1000);
                    System.out.println(" Thread :" + index);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
            }
        });
    }
}

调用多线程

 

public static synchronized void nkc(final String userId,
			final String version) {
		ExcutorUtil excutorService = ExcutorUtil.getSingleInstance();
		excutorService.execute(new Runnable() {
			public void run() {
				nkccall();
} }); }
分享到:
评论

相关推荐

    C++11/14 线程调用类对象和线程传参的方法

    线程调用类对象 在前面的示例中,我们为线程任务使用了通常的函数。实际上,我们可以使用任何可调用对象或者lambda函数,如下调用类对象的例子: #include #include class MyFunctor { public: void operator()...

    C#跨线程调用控件的四种方式(调用实例源码)

    下面我们将详细介绍C#中实现跨线程调用控件的四种常见方法,并提供相应的调用实例源码。 1. **控件的Invoke方法** 这是最常用且最直接的方法。`Control.Invoke`方法用于在控件所在的线程上执行指定的委托。如果...

    浅谈C#跨线程调用窗体控件(比如TextBox)引发的线程安全问题

    C#跨线程调用窗体控件时可能会引发线程安全问题,例如当多个线程操作同一个控件时,该控件可能会进入不一致的状态,出现争用情况和死锁等问题。因此,确保以线程安全方式访问控件非常重要。 在C#中,控件并不是线程...

    Unity异步线程调用主线程脚本

    Unity异步线程调用主线程脚本程序,在Unity中异步线程调用主线程会报错,所以编写了一个Loom

    易语言线程调用源码,易语言线程调用易包演示

    在易语言线程调用中,载入易包是为了引入特定的功能或者组件,这些组件可能包含了用于在线程中运行的特定函数或方法。 在“线程调用易包演示源码”中,我们可以预见到以下关键知识点: 1. **线程创建**:源码会...

    线程及方法调用

    在Java中,推荐使用`interrupt()`方法来请求线程中断,然后在线程的`run()`方法中检查`isInterrupted()`或`interrupted()`状态来决定是否退出循环。例如: ```java public class MyRunnable implements Runnable { ...

    C#跨线程调用控件的四种方式

    开发者可以在创建新线程时保存当前的`SynchronizationContext`,然后在需要跨线程调用时使用它。例如: ```csharp SynchronizationContext context = SynchronizationContext.Current; // 创建新线程 new Thread...

    C# 跨线程调用控件

    为了解决这个问题,我们需要采用一种标准的跨线程调用控件的方法。 一、理解线程安全与UI线程 1. **线程安全**:线程安全是指在多线程环境下,一个类或方法能够正确地处理并发访问,不会导致数据混乱或异常。在...

    C# 使用线程调用方法的便捷方式

    帖子地址: https://blog.csdn.net/qq_38693757/article/details/140284722?spm=1001.2014.3001.5502

    delphi多线程调用dll

    综上所述,Delphi多线程调用DLL涉及到了线程创建、DLL加载与卸载、函数调用、线程安全、同步原语使用等多个方面,需要开发者对多线程编程有深入的理解和实践经验。正确地处理这些问题将能充分利用多核处理器的优势,...

    jni中用多线程调用java代码

    描述中提到的“在JNI中用多线程调用Java对象”,意味着在C/C++代码中创建并管理多个线程,每个线程负责调用不同的Java方法或者处理不同的Java对象。在Android中,线程管理对于优化应用性能和避免UI阻塞至关重要。...

    C#解决跨线程调用错误的简单方法

    同时,使用Visual Studio的调试工具,如挂起和恢复线程,以及查看线程堆栈跟踪,可以帮助识别和解决跨线程调用错误。 最后,标签"源码"和"工具"暗示了可能存在相关的代码示例和辅助工具。在实际学习和解决问题时,...

    多线程调用dll

    本话题将深入探讨如何在C++环境下通过多线程调用DLL(动态链接库)中的函数。 DLL(Dynamic Link Library)是Windows操作系统提供的一种共享代码的方式,它可以被多个应用程序同时使用,以节省内存和提高性能。DLL...

    跨线程调用控件示例

    在跨线程调用控件时,我们必须使用委托作为数据传递的载体,因为它们可以安全地在多个线程之间传递方法调用。委托本质上是类型安全的函数指针,允许我们传递方法作为参数或在事件处理中使用。 C#中,`Control....

    C#多线程调用乐玩demo.cs

    C#多线程调用乐玩demo,源码

    (八)线程--借助 封装类 实现“线程调用带参数方法”

    (八)线程--借助 封装类 实现“线程调用带参数方法”

    跨线程调用控件的四种方式.rar

    理解并熟练运用这些跨线程调用控件的方法,对于编写高效且线程安全的C#应用程序至关重要。需要注意的是,不正确的线程操作可能导致程序崩溃,如著名的“Cross-thread operation not valid”异常,因此在处理控件时...

    unity下跨线程调用unity的内容

    主要实现了unity下开启线程,在线程中调用unity的内容,比如unity文本框,按钮和下拉框等unity自带的组件,必须通过相关的转换才能实现线程中调用unity的内容,否则,运行直接报错。只需要在unity项目开始调用的位置...

    .net版本简单线程调用源码.rar.rar

    本资源".net版本简单线程调用源码.rar.rar"很可能是包含了一个C#项目,用于演示如何在.NET环境中进行线程调用。下面将详细讨论相关知识点: 1. **线程的创建**: 在C#中,我们可以使用`System.Threading.Thread`类...

    c#跨线程跨类调用窗体控件

    总结一下,C#跨线程跨类调用窗体控件的关键在于正确使用`Invoke`或`BeginInvoke`方法来保证UI线程安全。通过这样的方式,即使在多个线程同时运行的情况下,也能确保对UI控件的操作是线程安全的。

Global site tag (gtag.js) - Google Analytics