问题列表 - 第38697页

需要一些Python线程/队列的帮助

import threading
import Queue
import urllib2
import time

class ThreadURL(threading.Thread):

    def __init__(self, queue):
        threading.Thread.__init__(self)

        self.queue = queue

    def run(self):
        while True:
            host = self.queue.get()
            sock = urllib2.urlopen(host)
            data = sock.read()

            self.queue.task_done()

hosts = ['http://www.google.com', 'http://www.yahoo.com', 'http://www.facebook.com', 'http://stackoverflow.com']
start = time.time()

def main():
    queue = Queue.Queue()

    for i in range(len(hosts)):
        t = ThreadURL(queue)
        t.start()

    for host in hosts:
        queue.put(host)

    queue.join()

if __name__ == '__main__':
    main()
    print 'Elapsed time: {0}'.format(time.time() - start)
Run Code Online (Sandbox Code Playgroud)

我一直试图了解如何执行线程,经过一些教程后,我想出了上述内容.

它应该做的是:

  1. 初始化队列
  2. 创建我的线程池,然后排队主机列表
  3. 然后,一旦主机进入队列并读取网站数据,我的ThreadURL类就应该开始工作了
  4. 该计划应该完成

首先我想知道的是,我这样做是否正确?这是处理线程的最佳方法吗?

其次,我的程序未能退出.它打印Elapsed time …

python queue multithreading asynchronous

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

来自"void*"的dynamic_cast

根据这个,void*没有RTTI信息,因此从铸造void*是不合法的,它是有意义的.

如果我没记错的话,dynamic_castvoid*正在开发gcc.

你能澄清一下这个问题吗?

c++ dynamic-cast rtti void-pointers

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

“”附近的MySQLSyntaxErrorException 尝试执行PreparedStatement时

我正在尝试使用Java中的PreparedStatement执行查询。

尝试执行查询时出现错误号1064(语法错误)。

我已经在MySQL查询浏览器中使用替代值测试了此方法,效果很好。

我的代码有什么问题?

以下是相关代码:

String query = "select MemberID, MemberName from members where MemberID = ? or MemberName = ?";
Connection conn = DriverManager.getConnection(DATABASE_URL, USERNAME, PASSWORD);
PreparedStatement s = conn.prepareStatement(query);
s.setInt(1, 2);
s.setString(2, "zen");
ResultSet rs = s.executeQuery(query);
Run Code Online (Sandbox Code Playgroud)

这是我得到的例外:

com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:SQL语法有错误;检查与您的MySQL服务器版本相对应的手册,以获取在'?附近使用的正确语法。或MemberName =吗?在第1行

java mysql jdbc

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

查找字符串中最常见的字符

我在查看SO上的职位发布时发现了这个编程问题.我认为它非常有趣,作为一名初学Python程序员,我试图解决它.但是我觉得我的解决方案非常......凌乱......任何人都可以提出任何建议来优化它或使其更清洁吗?我知道这很简单,但我写得很开心.注意:Python 2.6

问题:

为函数写入伪代码(或实际代码),该函数接收字符串并返回该字符串中出现最多的字母.

我的尝试:

import string

def find_max_letter_count(word):

    alphabet = string.ascii_lowercase
    dictionary = {}

    for letters in alphabet:
        dictionary[letters] = 0

    for letters in word:
        dictionary[letters] += 1

    dictionary = sorted(dictionary.items(), 
                        reverse=True, 
                        key=lambda x: x[1])

    for position in range(0, 26):
        print dictionary[position]
        if position != len(dictionary) - 1:
            if dictionary[position + 1][1] < dictionary[position][1]:
                break

find_max_letter_count("helloworld")
Run Code Online (Sandbox Code Playgroud)

输出:

>>> 
('l', 3)
Run Code Online (Sandbox Code Playgroud)

更新示例:

find_max_letter_count("balloon") 
>>>
('l', 2)
('o', 2)
Run Code Online (Sandbox Code Playgroud)

python algorithm optimization time-complexity

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

如何在Eclipse中为特定扩展手动指定语法突出显示?

我正在编辑一些扩展名为".ctp"的文件.虽然这些文件是完全有效的PHP文件,但Eclipse似乎并不知道并且拒绝使用它们进行任何语法突出显示.

如何手动指示它为'.ctp'文件使用PHP语法着色?有没有办法做到这一点?

php eclipse syntax-highlighting

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

什么是查找二进制图像中的形状数量的有效算法?

对于二进制图像,我感兴趣的是一种有效计算图像中存在的单个形状数量的方法.另外作为一个相邻的问题,如何将图像中存在的每个形状都放在一个正方形中?

伪代码是最受欢迎的.

algorithm computer-vision

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

如何使用linux amd64,cmake和g ++交叉编译linux x86?

每条信息都有+1,有助于完成整个画面.你不需要知道整个答案.我会同样欣赏这个拼图的各个部分.谢谢.

我即将尝试我的第一次交叉编译.我搜索了SO和网络,发现了许多信息,但我并不总是知道如何将这些部分放在一起,因为仍然有一些缺失的部分.

我的主持人:linux Kubuntu amd64.
目标:linux kubuntu x86(32位)(应该很简单,不是吗?)
工具:g ++和cmake.

这是我发现的信息:

如何使用gcc/cmake在64位Linux机器上编译32位二进制文​​件
提到导出CFLAGS = -m32.这是一件作品.

跨平台:选择使用32/64位的
数据类型提及数据类型.我可能必须在我的代码中注意这一点.

#ifdef用于32位平台
#ifdef用于32位平台
链接到以下内容,虽然我还不太清楚如何使用它:http:
//predef.sourceforge.net/prearch.html

http://ww.ubuntuforums.org/showthread.php?t=1377396
我做了:sudo apt-get install g ++ - multilib

缺件:

理想情况下,当我'make'(使用cmake)时,它应该吐出amd64二进制文件和x86二进制文件.

我的CMakeLists.txt的一部分如下所示:

add_definitions(-Wall -pthread)
add_executable (../run.amd64 user.cpp time.cpp init.cpp utils.cpp main.cpp)
target_link_libraries(../run.amd64 cppcms dbixx config++ ctemplate)
Run Code Online (Sandbox Code Playgroud)

如何引入标志-m32来创建第二个可执行文件?

我是否只想制作一个可执行文件(例如,用于测试和调试),如何告诉cmake创建一个或两个二进制文件?

此外,您可以看到我使用了一些第三方库,其中一些我必须自己编译.这是否意味着我还需要为目标主机编译每个二进制文件?有些人使用cmake,有些人使用:./ configure; 使;
如何为目标主机编译这些库(要使用的标志等)?

注意:动态链接库已经编译并安装在目标计算机上,所以也许我不需要担心这一步......我不确定:这是我遗失的部分之一......

我需要的是一种教程,或至少一些缺失的部分.我将更新这篇文章,详细介绍我取得的成就以及如何实现.

谢谢.

PS

有可能吗?

搜索更多,我发现了这个:
http://www.mail-archive.com/cmake@cmake.org/msg26265.html
"原始设计似乎不是为了windows-linux或linux-windows而设计的交叉编译."
cmake没有测试linux amd64到linux x86.

http://www.cmake.org/Wiki/CMake_Cross_Compiling#FAQ.2FPotential_Problems
"在混合的32/64位Linux安装中,交叉编译不能仅用于构建32/64位."

??

linux g++ cmake cross-compiling

26
推荐指数
4
解决办法
3万
查看次数

如何从Git中的另一台计算机存储库中提取?

例如,我已经在两台计算机上克隆了原始存储库.然后,我继续进行一些更改并提交到计算机A的本地存储库.我现在如何将这些更改提取到计算机B?计算机A和B都连接到网络.

我正在寻找的将是相当于手动创建补丁并将其发送给我的人,我可以将其应用于我的工作副本/本地回购.

git git-pull

75
推荐指数
4
解决办法
6万
查看次数

如何在Grails GORM中覆盖关系的级联删除?

我在Grails的GORM部分遇到了一些问题.我正在使用Grails 1.3.4和H2.

在数据库中,我有两个表模板报告.在GORM级我有两个域类TemplateReport;

class Template {

static hasMany = [reports: Report]

...
}
Run Code Online (Sandbox Code Playgroud)

class Report {

static belongsTo = [template: Template]

...
}
Run Code Online (Sandbox Code Playgroud)

默认行为似乎是当Template删除a时,删除将被级联,以便Report它所拥有的所有内容也将被删除.在数据库级别,我试图使报表中template_id -column 为ON DELETE SET NULL外键,但这不起作用.

有没有办法覆盖级联删除?

grails h2 foreign-key-relationship relational-database grails-orm

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

我在哪里可以找到@Inject jar

我正在关注此站点的MVC单元测试说明,但我找不到@Inject注释的jar .有人知道罐子在哪里吗?

java spring annotations

39
推荐指数
2
解决办法
4万
查看次数