标签: blocking

控制台输出是阻塞操作吗?

当Java程序调用System.out.println()或Scala程序调用println()时,线程是否阻塞?

我正在编写一个带有大量子任务的Scala程序.每个子任务都在Future中执行.建议actor和future内的代码不会阻塞,以便后续任务也不必等待.但我想在控制台上打印很多.

如果是阻塞操作:我可以做些什么来优化性能?

  • 我应该使用专用线程进行控制台输出,以便线程是唯一阻塞的线程吗?
  • 还有其他任何建议吗?

当然,我可以尝试减少输出量或收集StringBuilder中的一些输出并将它们一起打印,这样可以减少输出操作的数量.

java multithreading scala nonblocking blocking

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

如何创建一个简单的c#http monitor/blocker?

我正在阅读这个问题(如何在C#中创建一个简单的代理?),这几乎是我的意愿.

我只想要开发ac#app,例如,监控Firefox,IE等,并记录所有导航页面.根据访问过的页面,我想阻止该网站(如父母过滤器).

代码片段/样本很好,但如果您能告诉我使用该类的方向,我将不胜感激.:-)

c# monitoring http blocking

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

如何找出被阻止的SQL查询以及阻止它们的内容?

我正在尝试优化一些慢速网页,我的猜测是问题与SQL阻塞有关(似乎不是Web服务器或数据库服务器上的CPU或I/O利用率问题).找出哪些查询被阻止以及哪些查询正在执行阻止的最快方法是什么?

sql sql-server optimization performance blocking

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

Process.Start正在阻止

我正在调用Process.Start,但它会阻止当前线程.

pInfo = new ProcessStartInfo("C:\\Windows\\notepad.exe");

// Start process
mProcess = new Process();
mProcess.StartInfo = pInfo;
if (mProcess.Start() == false) {
    Trace.TraceError("Unable to run process {0}.");
}
Run Code Online (Sandbox Code Playgroud)

即使进程关闭,代码也不再响应.

但是Process.Start真的应该阻止吗?这是怎么回事?

(流程正确启动)


using System;
using System.Diagnostics;
using System.Threading;
using System.Windows.Forms;

namespace Test
{
    class Test
    {
        [STAThread]
        public static void Main()
        {
            Thread ServerThread = new Thread(AccepterThread);
            ServerThread.Start();

            Console.WriteLine (" ---  Press ENTER to stop service ---");
            while (Console.Read() < 0) { Application.DoEvents(); }

            Console.WriteLine("Done.");
        }

        public static void AccepterThread(object data)
        {
            bool …
Run Code Online (Sandbox Code Playgroud)

c# process sta blocking

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

如何在所有和任何其他javascript运行后运行jQuery函数

我有一个托管在CMS(Squarespace)上的照片库页面,它有一些自己的脚本,可以异步加载缩略图.

然而,实际的大图像没有预加载,所以我决定将自己的脚本添加到混合中,只是让浏览器将这些较大的图像加载到后台的缓存中,如下所示:

(function($) {
  var cache = [];
  // Arguments are image paths relative to the current page.
  $.preLoadImages = function() {
    var args_len = arguments.length;
    for (var i = args_len; i--;) {
      var cacheImage = document.createElement('img');
      cacheImage.src = arguments[i];
      cache.push(cacheImage);
    }
  }
})(jQuery)

$(window).load(function(){
$.preLoadImages(
    "/picture/1.jpg",
    "/picture/2.jpg", //etc.
   );
});
Run Code Online (Sandbox Code Playgroud)

我将我的代码放在$(window).load()中,因为这是一个后台脚本,它甚至根本不运行,它只是为了提高性能.

但是,我认为这个脚本以某种方式阻止了CMS自己的缩略图预加载脚本.

我对吗?最重要的是,有没有办法规定我的脚本只在页面上的所有其他脚本运行后运行?

干杯

javascript jquery asynchronous blocking preloading

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

硬盘直接内存访问的目的是什么?

乍一看似乎是一个好主意让硬盘自己写入RAM,没有CPU指令复制数据,特别是考虑到异步网络的成功.但维基百科关于直接内存访问(DMA)的文章指出:

使用DMA,CPU可以从这种开销中解脱出来,并且可以在数据传输期间执行有用的任务(尽管CPU总线会被DMA 部分阻止).

我不明白公交线路是如何"部分阻挡"的.据推测,当时一个设备可以访问内存,然后看起来CPU实际上没有什么有用的工作.它会在第一次尝试读取未缓存的内存时被阻止,我预计在2 mb缓存的情况下会非常快.

释放CPU来执行其他任务的目标似乎是无偿的.硬盘DMA是否会在实践中促进任何性能提升?

memory io cpu system blocking

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

BlackBerry:由于UiApplication.getUiApplication().popScreen(),"应用程序没有响应;进程终止"?

我有一个Blackberry应用程序,当在一些具有触摸支持的仿真器中运行时(例如:9500,9520,9530,9550),终止于:

"应用程序没有响应;进程XPTO终止"

使用日志,我发现应用程序似乎停止在我异步发出HTTP请求的类中:类似于:

public class LoadingFullScreen extends FullScreen implements Runnable {

    private Thread actionThread = null;

    protected void onDisplay() {
        actionThread = new Thread(this);
        actionThread.start();
    }

    protected void onUndisplay() {
        if(actionThread != null && actionThread.isAlive()) {
            actionThread.interrupt();
        }
    }

    public void run() {
        //make http requests - this is done successfully

        synchronized(Application.getEventLock()) {
                Screen active = UiApplication.getUiApplication().getActiveScreen();
                if (active instanceof LoadingFullScreen) {
                    Logger.debug("LoadingFullScreen popping screen"); //this appears in logs
                    UiApplication.getUiApplication().popScreen(active);
                    Logger.debug("LoadingFullScreen screen popped"); //this never appears in logs
                }
        } …
Run Code Online (Sandbox Code Playgroud)

blackberry blocking blackberry-simulator

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

蓝牙在Android上:我的Socket.connect()永远阻止,而Socket.close不会解锁

我一直在研究一款适用于Android的蓝牙应用程序,我刚刚发现了这个问题.当我mySocket.connect();在我的蓝牙服务类中进行预处理时,它偶尔会无限期地阻塞.我阅读了文档,BluetoothSocket.close()并说明了以下内容:

立即关闭此套接字,并释放所有相关资源.

导致其他线程中此套接字上的被阻止调用立即抛出IOException.

但是,这对我来说似乎不起作用.这是我设置计时器然后尝试连接的代码.

//code for starting timer and connecting
    MyRunnable runner = new MyRunnable(mySocket);
    Thread countThread = new Thread(runner);
    countThread.start();

    mySocket.connect();
    runner.setSocketConnected();


//code for MyRunnable
    private class MyRunnable implements Runnable{
        private boolean didSocketConnect = false;
        private boolean socketConnectFailed = false;
        private BluetoothSocket socket;

        public MyRunnable(BluetoothSocket socket){
            this.socket = socket;
        }

        public void run() {
            long start = System.currentTimeMillis();
            while(ESTABLISH_TIMEOUT + start >= System.currentTimeMillis() && !didSocketConnect && !socketConnectFailed){

            }
            if(!didSocketConnect && !socketConnectFailed){
                Log.v(TAG,"Reached Timeout and socket …
Run Code Online (Sandbox Code Playgroud)

sockets android bluetooth blocking

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

芹菜工人挂起没有任何错误

我有一个生产设置,用于运行芹菜工作者对远程服务和存储结果发出POST/GET请求,它每15分钟处理大约20k个任务的负载.

问题是工人无缘无故麻木,没有错误,没有警告.

我也试过添加多处理,结果相同.

在日志中,我看到执行任务的时间增加,就像在s中成功一样

有关更多详细信息,请访问https://github.com/celery/celery/issues/2621

python blocking celery gevent

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

threading.Event() 对象是否遭受虚假唤醒?

threading.Event()在 C 中,pthread 条件变量与python 中的变量具有相同的用途。我的问题是,threading.Event()变量是否会遭受与 pthread 条件变量相同的虚假唤醒问题?

python multithreading asynchronous blocking spurious-wakeup

7
推荐指数
0
解决办法
309
查看次数