标签: blocking

第二个$(文件).ready事件jQuery

我正在使用一些带有$(document).ready()的外部jQuery在文档就绪事件被触发后插入广告,例如:

$(document).ready( function() {
  $('#leaderboard').html("<strong>ad code</strong>");     
});
Run Code Online (Sandbox Code Playgroud)

这是为了防止UI被广告的缓慢加载阻止.到目前为止,它一直运作良好.

现在我需要通过我们的CMS系统插入更多的广告,这不能是外部JS文件的一部分,所以我想知道我可以使用第二个文档就绪事件并使用内联脚本标记插入它吗?如果是这样,首先执行外部JS文档就绪事件或内联脚本的执行顺序是什么?

html javascript jquery ads blocking

6
推荐指数
3
解决办法
6820
查看次数

备份MySQL数据库

我有一个大约1.7GB的MySQL数据库.我通常使用mysqldump备份它,大约需要2分钟.但是,我想知道以下问题的答案:

  1. mysqldump是否阻止对数据库的读取和/或写入操作?因为在实时场景中,我不想阻止用户在备份时使用数据库.

  2. 对我来说,理想的做法是只在一周内备份一次WHOLE数据库,但在中间时间,只需要备份一个表,因为其他表不会更改.有没有办法实现这个目标?

  3. mysqlhotcopy是否是更好的替代方案?

mysql backup mysqldump blocking

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

如何强制主要Acivity在Android中等待子活动?

我称之为主要活动的子活动.这个子活动应该从用户那里拿几个数字(我使用编辑文本控件来实现这一点),将它们保存到另一个类中的静态变量并终止.我希望主要活动等待子活动,但两者都只是同时运行.即使这样做也无济于事:

     Thread t = new Thread(new Runnable(){
     public void run(){
     Log.v("==================", "run "+new Date());
     startActivityForResult(new Intent(ctx,myCustomSubactivity.class),1);  
     } });
     Log.v("==================", "calling run "+new Date());
     t.start();      
     try {
        t.join();
    } catch (InterruptedException e) {Log.v("==================", "can't join");}
    Log.v("==================", "back from activity "+new Date());
Run Code Online (Sandbox Code Playgroud)

你知道如何强迫主要活动等待吗?Android中不支持Thread.wait()方法(程序抛出错误).

android blocking wait subactivity android-activity

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

C++对象终止通知

在C++程序中,我有两个引用计数对象:KingHeir.继承人需要阻止,直到国王被摧毁.King是一个引用计数对象,当它的引用计数变为零时将被销毁.如果继承人持有对King的引用,则King的引用计数将永远不会为零.在King被摧毁之前,怎么能阻止继承人?

c++ reference blocking

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

非阻塞(事件驱动的I/O)与阻塞I/O.

最近我偶然发现了这个名为nodeJS的漂亮JS库,它就像服务器端JS一样.

该语言的主要特性是Evented I/O,它使I/O的固有容量完全无阻塞,使用回调!

我的问题是,如果过去存在这种完全无阻塞的I/O机制(给定事件驱动的I/O已经存在了很长时间),为什么它们在C#等高级语言中更受欢迎? Java(虽然Java具有支持非阻塞I/O的NIO实现)?

目前,简单的文件读/写操作会导致完整的I/O阻塞,而事件驱动的I/O则不然.

我想更好地理解事件驱动的I/O以及它与Java中的不同之处.

io events nonblocking blocking node.js

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

连接到服务器的Java套接字块

我正在尝试使用Java套接字连接到服务器.我正在尝试从端口80连接到90

int port;
Socket clientsocket;
String hostname = "www.google.com";

for(port = 80;port<=90; port++){
  try{
    clientsocket = new Socket(hostname,port);
    System.out.println("Connection at port " + port + "\t" + clientsocket.isConnected());
    clientsocket.close();
  }
  catch(Exception e){
    System.out.println(e.getMessage());
  }
}
Run Code Online (Sandbox Code Playgroud)

当我尝试连接到任何网站,如google.com或w3schools.com时,我的程序挂起了socket()除80之外的端口号码的呼叫.由于这些网站不在端口81-90上提供,它应该引发异常,但它被阻止.对于80端口,它工作正常.当我尝试连接到我的机器上安装的apache服务器时,它不会阻止任何端口号并给我连接拒绝错误,这是明显的行为.那么为什么会这样呢?提前致谢.

java sockets port blocking

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

有没有办法让MySQL等待符合条件的行插入

假设我正在编写一个应用程序,我需要从服务器实时获取通知,并且假设这些通知存储在mysql数据库中.为了让我得到它们,我必须继续轮询mysql服务器(不断重复相同的选择查询,直到我真正得到结果)但我认为这是非常无效的方式这样做,因为大多数时候选择会变为空.如果我经常这样做,它在服务器上是不合理的压力,如果我这样做,很少通知会很晚.所以我想知道是否有办法说一个mysql查询阻止,直到匹配条件的结果变得可用.

list = query ("SELECT * FROM `notifications` WHERE `unread`=1") ;
Run Code Online (Sandbox Code Playgroud)

如果没有未读通知,则不会返回空列表,而是等到实际有未读通知返回

mysql polling blocking wait long-polling

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

是否可以使用`waitForReadyRead()`而不是为`readyRead()`信号创建一个槽?

使用Qt编写跨平台应用程序(包括带MinGW的Windows).为了从SSL套接字读取数据,我正在创建一个单独的线程.这个帖子是出于历史原因,因为之前的应用程序是使用C socket/ssl/crypto库编写的.现在所有这些都被Qt网络库取代了.

对于阻塞线程,waitForReadyRead(milliseconds)似乎是一个更好的选择.现在根据Qt层次结构:

QIODevice
   |
QAbstractSocket
   |
QTcpSocket
   |
QSslSocket
Run Code Online (Sandbox Code Playgroud)

QAbscractSocket::waitForReadyRead()建议文件:

注意:此功能可能在Windows上随机失败.如果您的软件将在Windows上运行,请考虑使用事件循环和readyRead()信号.

但类似的警告是没有提到的QIODevice::waitForReadyRead().

问题:是否QSslSocket::waitForReadyRead()始终可用于所有平台?


为什么我没有使用readyRead()信号?
出于一些奇怪的原因,如果我使用readyRead()插入一些方法,那么它就不会被调用.此外,QSslSocket :: write()也不起作用,否则使用上述方法.由于我的代码很复杂,我无法在此处提供.

c++ ssl qt blocking qt-signals

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

如何在Python中阻止在命名管道上阻塞的线程?

我有一个子类threading.Thread.唯一的责任是将从UNIX命名管道读取的消息放入queue.Queue对象(以便其他线程可以在以后处理这些值).

示例代码:

class PipeReaderThread(Thread):
    def __init__(self, results_queue, pipe_path):
        Thread.__init__(self)
        self._stop_event = Event()
        self._results_queue = results_queue
        self._pipe_path = pipe_path

    def run(self):
        while not self._stop_event.is_set():
            with open(self._pipe_path, 'r') as pipe:
                message = pipe.read()
            self._results_queue.put(message, block=True)

    def stop(self):
        self._stop_event.set()
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,我想使用一个threading.Event对象来停止循环,但由于命名管道上的open()read()调用将阻塞(直到有人打开管道写入/写入然后关闭它),线程永远不会有机会停.

我不想对命名管道使用非阻塞模式,因为阻塞实际上是我想要的,我想等待某人打开并写入管道.

使用套接字我会尝试在套接字上设置超时标志,但我找不到任何方法为命名管道执行此操作.我还考虑过用冷血杀死线程而不给它机会优雅地停止,但这并不像我应该做的那样,我甚至不知道Python是否提供了这样做的方法.

我应该如何正确地停止这个线程,以便我可以join()在之后调用它?

multithreading pipe named-pipes blocking python-3.x

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

在'with open()'块内使用'while True'循环会带来什么后果?

例如:

def read_file(f):
    with open(f, 'r') as file_to_read:
        while True:
            line = file_to_read.readline()
            if line:
                yield line
            else:
                time.sleep(0.1)
Run Code Online (Sandbox Code Playgroud)

生成器由另一个函数使用:

def fun_function(f):
    l = read_file(f)
    for line in l:
        do_fun_stuff()
Run Code Online (Sandbox Code Playgroud)

一个用例将是读取一个无限更新的文本文件,例如日志,其中每秒钟左右添加新行。

据我了解read_file(),只要有结果,该功能就会阻止其他功能。但是由于除非文件中没有新行,否则什么也不做,在这种情况下,这似乎还可以。我的问题是,是否还有其他原因不喜欢这种阻止模式(例如性能)?

python blocking

6
推荐指数
0
解决办法
85
查看次数