java,前端代实现码异步处理,启动线程前传参

新启一个线程,获取不到原线程的信息,需要在新启之前将一个值作为参数传进去

前端不存在所谓线程,你要在异步方法中传参就要搞一个变量去存放参数

  • 这个问题的回答你可以参考下: https://ask.csdn.net/questions/7659405
  • 这篇博客也不错, 你可以看下java语言描述数据结构与算法之——冒泡排序,插入排序,选择排序,希尔排序,快速排序,归并排序,二分查找
  • 同时,你还可以查看手册:java-集合 - 关于使用和扩展Java集合框架的课程。- 聚合操作 代表你对集合进行迭代,这使你能够编写更简洁和有效的代码,处理存储在集合中的元素。 -平行主义 中的内容
  • 除此之外, 这篇博客: Java如何监控一个文件目录,当作出新增,删除,修改文件等操作时,第一时间对文件作出响应中的 添加监听器 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 实现 FileAlterationListenerAdaptor类,然后会继承一些方法,然后使用FileAlterationObserver的addlistener方法添加进去这个就好

    如下代码:

    _ob.addListener(new FileAlterationListenerAdaptor(){
                @Override
                public void onStart(FileAlterationObserver observer) {
                    log.debug("{} 已开启监控文件夹:{}",_name,path);
                }
                @Override
                public void onDirectoryCreate(File directory) {
                    logger.info("有新文件夹生成:{}",directory.getName());
                }
                @Override
                public void onDirectoryChange(File directory) {
                    logger.info("有文件夹内容发生变化:{}",directory.getName());
                }
                @Override
                public void onDirectoryDelete(File directory) {
                    logger.info("有文件夹被删除:{}",directory.getName());
                }
                @Override
                public void onFileCreate(File file){
    				logger.info("有新增文件:{}",file.getName());
                }
                @Override
                public void onFileChange(File file){
                    logger.info("有文件被修改:{}",file.getName());
                }
                @Override
                public void onFileDelete(File file){
                    logger.info("有文件被删除:{}",file.getName());
                }
                @Override
                public void onStop(FileAlterationObserver observer){
                    log.debug("{}:已停止监控文件夹:{}",_name,path);
                }
            });
    
  • 您还可以看一下 汪翠老师的java项目实战之欢乐斗地主游戏开发教程 毕业项目课程设计带源码课程中的 创建服务器端接收客户端上线消息小节, 巩固相关知识点
  • 以下回答由chatgpt基于相关博客总结生成:

    问题解答:

    要在Java中启动一个新的线程以进行异步处理,可以使用线程池或者执行器来实现。启动新线程之前传递参数的方法有多种,可以使用构造函数传递参数、使用静态变量来共享数据等。

    假设需要启动一个新线程处理两个整数相加并返回结果,需要在启动新线程之前将这两个整数作为参数传递进去,可以使用以下代码实现:

    class AddTask implements Callable<Integer> {
        private int a, b;
        public AddTask(int a, int b) {
            this.a = a;
            this.b = b;
        }
        public Integer call() {
            return a + b;
        }
    }
    
    public class Main {
        public static void main(String[] args) throws Exception {
            int a = 1, b = 2;
    
            ExecutorService executor = Executors.newSingleThreadExecutor();
            Future<Integer> future = executor.submit(new AddTask(a, b));
            int result = future.get();
            System.out.println(result);
    
            executor.shutdown();
        }
    }
    

    在这个程序中,通过创建一个实现Callable接口的AddTask类来实现异步处理。该类的构造函数接收两个整数,作为待相加的数。该类实现了Callable接口中的call方法,用来执行相加操作并返回结果。在程序的主函数中,创建了一个ExecutorService对象,使用submit方法向线程池中添加AddTask对象来异步执行相加操作,并返回一个Future对象future。调用future.get()方法可以等待异步操作完成,并获取异步操作的结果。

    参考文献:

    [1] Java线程池的使用

    [2] Java ExecutorService的使用

    [3] Java中使用Executor实现多线程

    [4] Java中的Callable类型

    [5] Java中的Future类型