标签: single-threaded

强制存储过程单线程运行

我有一个在多核系统上运行的存储过程。它以多线程方式执行。由于,可能是查询中的某些事情,某些线程的执行会因 cx_packet 等待和锁定而永远挂起。有没有办法强制单线程执行?(我知道这不是最好的解决方案,但至少在查询得到更好的优化之前是有帮助的。)

database sql-server stored-procedures single-threaded

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

如何应对竞争条件

我对网络开发很陌生.从我所看到的种族条件我想到的节点或JS它们是不可能的,因为它是单线程的,但我看到的是......我猜错了.有了这个小例子,有人可以解释它是如何工作的.

如果有一个1000美元的银行账户,两个人在完全相同的时间向该账户收取费用.第一人收费600美元,第二人收费200美元.

第一笔费用为1000美元 - 600美元,余额为400美元.但是,由于第二次充电同时达到1000美元 - 200美元,余额为800美元.显然,现在的余额应该是200美元.

根据我的理解会导致竞争条件,不是吗?您如何设置它以避免此问题?我不需要确切的代码,也许有人向我解释这个,或伪代码.

提前致谢.

编辑:我将编辑它最初如何设置代码导致竞争条件.

就像下面的帖子说的那样.代码将被设置为当帐户被点击时,它将减去金额并给出新的余额.显然这会导致比赛状况.

javascript race-condition single-threaded node.js

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

Node JS 对后端 API 的多个并发请求

这是我的节点 js 后端 API 方法。

apiRouter.route('/makeComment')
        .post((req, res) => {

            consoleLogger.info("Inside makeComment API..");
            logger.info("Inside makeComment");

            let timestamp = new Date().getTime();

            let latestCommentID = timestamp.toString();

            console.log("comment ID generated is "+latestCommentID);


            res.json({
                                'makeComment': 'success',
                                'commentid':latestCommentID
                 });

        });
Run Code Online (Sandbox Code Playgroud)

现在,如果多个并发请求来到这个 API,会发生什么?

据我了解,NodeJS 会为请求维护一个事件队列,并一一处理请求。

因此,不可能为两个不同的请求获得相同的时间戳。

请让我知道我的理解是否正确?


编辑1:

google了一段时间,得到了这个链接,里面的一些概念解释的很清楚。

javascript single-threaded node.js singlethreadmodel

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

在Java中的单线程应用程序中,volatile是否有用?

正如在标题中那样 - 在Java的单线程编程环境中,volatile是否有用?我知道它用于确保变量的值总是在内存中实际检查,因此在任何情况下,该值可能会以app /编译器不会注意到的方式更改(在单线程应用程序中)?

java multithreading volatile single-threaded

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

Java - 允许方法中的一个线程无需等待

我遇到一种情况,我需要实现一个线程安全的方法,该方法一次只能由一个线程执行,当该方法由一个线程执行时,所有其他尝试执行同一方法的线程都应该执行t 等待并且必须退出该方法。

同步在这里没有帮助,因为线程将等待顺序执行该方法。

我想我可以通过使用下面的代码使用 ConcurrentHashMap 来实现这一点,但不确定这是否是实现它的完美方法。

Class Test {

private ConcurrentHashMap<String, Object> map = new ConcurrentHashMap<>();

    public void execute() {
        
        if (map.putIfApsent("key", new Object()) != null) { // map has value for key which means a thread has already entered.
            return; // early exit
        }
        
        threadSafeMethod();
        map.remove("key");
    }
    
    private void threadSafeMethod() {
        // my code
    }
}
Run Code Online (Sandbox Code Playgroud)

java concurrency multithreading synchronization single-threaded

0
推荐指数
1
解决办法
843
查看次数

NodeJS和Go语言的单个线程如何比Java的多线程更好?

我想比较NodeJS,Go lang和Java.我搜索并发控制.结果是Java的并发控制是多线程的,NodeJS和Go lang的并发控制是单线程.那么,我想知道NodeJS和Go的单线程如何比Java的多线程更好?

谁能帮我 ?每个评论都要Ty.

java multithreading go single-threaded node.js

-3
推荐指数
1
解决办法
1594
查看次数