小编Dor*_*ham的帖子

为什么使用带有synchronized块的volatile?

我在java中看到了一些例子,他们在一块代码上做同步来改变一些变量,而这个变量最初被声明为volatile.我在单例类的一个例子中看到,他们将唯一的实例声明为volatile并且他们同步了块初始化那个实例...我的问题是为什么我们在同步它时声明它是不稳定的,为什么我们需要同时做两个?对其他人来说不是其中之一吗?

public class someClass {
volatile static uniqueInstance = null;

public static someClass getInstance() {
        if(uniqueInstance == null) {
            synchronized(someClass.class) {
                if(uniqueInstance == null) {
                    uniqueInstance = new someClass();
                }
            }
        }
        return uniqueInstance;
    }
Run Code Online (Sandbox Code Playgroud)

提前致谢.

java multithreading volatile synchronized double-checked-locking

42
推荐指数
3
解决办法
2万
查看次数

无法启动qlocalserver

我在我的IPC解决方案中使用Qlocalsocket,我能够启动服务器并接受来自QLocalSocket客户端的连接并进行良好的通信,没有任何问题.

但是我的问题发生在我杀死服务器的进程时,我不能让QLocalServer再次在同一个地方监听,我必须更改服务名称才能再次启动它,这在运行时环境是不可能的.

那么如何让前一个进程发布该名称呢?

这是我如何启动服务器:

m_server = new QLocalServer(this);
if (!m_server->listen("serviceUniqueName")) {
    qDebug() << "Not able to start the Server";
    return;
}
Run Code Online (Sandbox Code Playgroud)

qt ipc qlocalsocket

9
推荐指数
2
解决办法
3186
查看次数

onDoupleTap不会开火

我想制作一个响应双击的mapview并获取点击位置的地点并将其返回给调用者活动..我在eclipse模拟器中测试我的应用程序,但是当我双击地图时没有任何反应和我的onDoubleTap()方法永远不会进入

这是我的代码

public class MYMapActivity extends MapActivity implements GestureDetector.OnGestureListener, GestureDetector.OnDoubleTapListener{

GestureDetector gestureDetector;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.mymapview);
        MapView mapView = (MapView) findViewById(R.id.mapview);
        mapView.setBuiltInZoomControls(true);

        gestureDetector = new GestureDetector(getApplicationContext(), this);
        gestureDetector.setOnDoubleTapListener(this);
    }
@Override
    protected boolean isRouteDisplayed() {
        return false;
    }

    @Override
    public boolean onDoubleTap(MotionEvent mev) {
        MapView mapView = (MapView) findViewById(R.id.mapview);
        Projection p = mapView.getProjection();
        GeoPoint geoPoint = p.fromPixels((int) mev.getX(), (int) mev.getY());
        int latitude = geoPoint.getLatitudeE6();
        int longitude = geoPoint.getLongitudeE6();
        Intent resultIntent = new Intent();
        resultIntent.putExtra("latitude", latitude);
        resultIntent.putExtra("longitude", longitude); …
Run Code Online (Sandbox Code Playgroud)

android double-click gesture android-mapview

4
推荐指数
1
解决办法
2159
查看次数

单声道同步?

如果我有一个只有一个这样的语句的getter方法

public class NumberClass{
    int number;

    public int getNumber() {
        return number;
    }
    ...
}
Run Code Online (Sandbox Code Playgroud)

多线程访问此方法,我是否必须同步此方法或没有必要,因为它只有一个语句?

java multithreading synchronization

2
推荐指数
1
解决办法
262
查看次数

为什么建议公开加密算法?

密码学书籍说你应该公开你的加密/解密算法来测试它以防止攻击和密码分析,并且非暴露算法不被认为是强大的,因为它没有针对攻击进行测试,但他们也说加密算法的安全性取决于主要是关键长度和关键随机分布,以保护它免受暴力攻击和数学分析的关键.

我的问题是为什么我们需要暴露我们的算法,而它主要取决于密钥长度,如果我的密钥足够长并且真正随机化,那么了解算法有什么好处?

security encryption cryptography cryptanalysis

2
推荐指数
1
解决办法
649
查看次数