如何处理并发?java

来源:百度知道 编辑:UC知道 时间:2024/06/10 08:06:49
由于可能同时多人调用我的算法,我需要考虑并发性,在程序中如何解决呢?
能举个小例子吗?
谢谢了。
比如每次都new一个对象去应对请求?
程序中如何体现的呢?

如果你是负责实现算法的,其实并不需要考虑所谓的并发性,因为算法与具体业务是不相干的,同样的一个算法被多次调用并不会引起什么不良的后果,即使客户程序丢给你一个被并发访问的参数,你也不需要考虑它,这是客户程序应该考虑的事。
我想你不必去费心设计一个单例,单例有它自身的问题和缺陷。这里只需要将类中的方法声明为public static就应该能满足要求了。

用设计模式中的单件模式,不用每次都new一个对象,大家共用一个就行了。

public class SingletonDemo{
//静态的,给大家共享
private static SingletonDemo instance;
//不给别人自己实例化
private SingletonDemo(){
}
//自己提供一个单件解法来创建实例
public static SingletonDemo getInstance(){
if(instance!=null)return instance;
return new SingletonDemo();
}
}

并发有基本线程编程,java5加入的java.util.concurrent包都可以应对并发编程
你想解决哪方面的问题?是数据的一致性还是对象的重用?
如果是后者可考虑池的概念,如线程池,数据库连接池,若干个对象被n多请求共享

直接在要同步的语句前加关键字 synchronized 就行了~ 以下是我写的一个例子~ 楼主可以尝试将 程序中的关键字 synchronized 去掉来对比一下运行结果~

package test2;

import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.TimeUnit;

public class Test21 {
static int m=0;