怎样将单个对象的调用转换为多线程的调用?

问题描述

怎样将单个对象的调用转换为多线程的调用? 2C
在MINA框架里的messageReceived方法所在的类里创建一成员对象,然后在messageReceived里调用这个对象的某个方法,同时将messageReceived里的session传给这个方法。问题来了,因为MINA框架是多线程的,所以单单用一个对象去调用自己的方法,有可能会造成程序崩溃。因为当多条线程同时调用这个对象的方法时,就死了。所以怎么才能将这个成员对象转换成为多线程来运行呢?

解决方案

1、如果对象没有共享变量,那创建成ThreadLocal方式。
2、如果对象有共享变量,那就只能同步锁了。

时间: 2025-01-12 00:32:24

怎样将单个对象的调用转换为多线程的调用?的相关文章

轻松把玩HttpClient之封装HttpClient工具类(四),单线程调用及多线程批量调用测试

       本文主要来分享一下该工具类的测试结果.工具类的整体源码不再单独分享,源码基本上都已经在文章中了.开始我们的测试.        单线程调用测试: public static void testOne() throws HttpProcessException{ System.out.println("--------简单方式调用(默认post)--------"); String url = "http://tool.oschina.net/"; //

android 将图片内容解析成字节数组,将字节数组转换为ImageView可调用的Bitmap对象,图片缩放,把字节数组保存为一个文件,把Bitmap转Byte

http://blog.csdn.net/z104207/article/details/6634774 [java] view plaincopy package com.bingo.util;      import java.io.BufferedOutputStream;   import java.io.ByteArrayOutputStream;   import java.io.File;   import java.io.FileOutputStream;   import ja

JAVA之旅(十二)——Thread,run和start的特点,线程运行状态,获取线程对象和名称,多线程实例演示,使用Runnable接口

JAVA之旅(十二)--Thread,run和start的特点,线程运行状态,获取线程对象和名称,多线程实例演示,使用Runnable接口 开始挑战一些难度了,线程和I/O方面的操作了,继续坚持 一.Thread 如何在自定义的代码中,自定义一个线程呢? 我们查看API文档,我们要启动一个线程,先实现一个子类, package com.lgl.hellojava; public class MyThread extends Thread { @Override public void run()

多线程异步调用 java-多线程异步调用的问题

问题描述 多线程异步调用的问题 请改造以下类,使之在多线程异步调用时,而不会出数据覆盖,即并发冲突 pulbi class Math { private static int result = 0; public static int sum(int a, int b){ result = a + b; return result; } } 请教大神 怎么做 解决方案 如果不考虑同步控制粒度问题,直接把synchronized(Math.class) 加在当前类定义上的,是可行的 当然控制同步的

C#中使用单个对象的方法实现Undo/Redo

简介 我们如何在不同的场景下使用这些方法来实现Undo/Redo.这些方法是使用单个对象表示变化,命令模 式和备忘录模式. 正如我们所知,Undo/Redo没有通用的解决方案,而Undo/Redo在每个应用程序中非常具体.处于这个 原因,在该系列文章的开始部分,将讨论如何使用该方法建模任意的应用程序,然后展示一个简单应用程 序的实现. 关于Undo/Redo实现的基本思想 正如我们所知,应用程序在每次操作后改变其状态.当操作应用程序时,它的状态会发生改变.所以 ,若有人想要做撤销,他不得不回到先

java+ 程序 子类继承父类 创建子类对象时构造方法中无显示调用父类构造方法

问题描述 java+ 程序 子类继承父类 创建子类对象时构造方法中无显示调用父类构造方法 创建子类对象时,Student s = new Student(""school""); 该构造方法中没有显示调用父类的构造方法,但还是编译成功了,该构造方法调用自身的构造函数,此构造函数中有调用父类的构造方法,执行成功的原因是什么 解决方案 不用显示调用,会自动执行父类的构造 解决方案二: 子类的构造方法中,如果没有显示调用父类的构造方法,会默认调用父类无参的构造方法.类似于

php-PHP怎么请求soap。其中要调用的那个方法的参数是这个方法的对象参数。到底该怎么调用

问题描述 PHP怎么请求soap.其中要调用的那个方法的参数是这个方法的对象参数.到底该怎么调用 且我用__getFunctions获取到要调用的方法是PayResponse Pay(Pay $parameters).我试了好几次都报错,报:Object reference not set to an instance of an objec.请问该PayResponse Pay(Pay $parameters)方法怎么用PHP的soap请求调用.希望详细点. 解决方案 用httprequest

c++-qt多线程如何调用多核

问题描述 qt多线程如何调用多核 我的程序要处理大量的数据,想开辟多个线程,但是当跑起来的时候,其实它们只是在轮流着执行的,并没有在多核上运行,改进程的cpu占用量一直是50%,请问我用什么办法可以是多个线程跑在多个cpu上,使cpu占用量到100%呢 解决方案 多个线程就是可以利用多个处理器的.检查下你是不是有多余的代码锁定和同步. 解决方案二: 不知道LZ是不是由于别的操作限制了速度,如果速度是从磁盘读的,可能跟磁盘性能有关系,要与磁盘同步数据,io太多 如果是数据库,虽然你每次只插一条数据

接口-php怎么调用wcf服务,调用参数是对象参数。

问题描述 php怎么调用wcf服务,调用参数是对象参数. .net做的wcf接口,部署IIS上访问是可以的如图: 我用php soap调用测试,是否能通,也是可以的: <?php header('Content-Type: text/plain'); $client = new SoapClient('http://testu.sh.jinri.com/Flight.User.SOA/SuggestService.svc?wsdl'); echo ' '; echo "提供的方法n&quo