我有一个等待连接的主线程.它产生的客户端线程将回应客户端的响应(在本例中为telnet).但是说我想在一段时间后关闭所有套接字和所有线程,比如在1次连接之后.
我该怎么办?如果我clientSocket.close()
从主线程做,它将不会停止做recv
.它只会在我第一次通过telnet发送内容时停止,然后它将无法进行进一步的发送和recvs.
我的代码看起来像这样:
# Echo server program
import socket
from threading import Thread
import time
class ClientThread(Thread):
def __init__(self, clientSocket):
Thread.__init__(self)
self.clientSocket = clientSocket
def run(self):
while 1:
try:
# It will hang here, even if I do close on the socket
data = self.clientSocket.recv(1024)
print "Got data: ", data
self.clientSocket.send(data)
except:
break
self.clientSocket.close()
HOST = ''
PORT = 6000
serverSocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
serverSocket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
serverSocket.bind((HOST, PORT))
serverSocket.listen(1)
clientSocket, addr = serverSocket.accept()
print 'Got …
Run Code Online (Sandbox Code Playgroud) 我在Mac OSX上运行,版本10.8.5(Mountain Lion).我有以下简单的C++代码.
main.cpp
:
#include <iostream>
int main ()
{
std::cout << "Hello world!"<<std::endl;
std::cout << "Goodbye world!"<<std::endl;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我正试图让gprof在我的电脑上工作.如手册所示,我在我的终端中输入以下两行:
g++ -g -pg main.cpp -o a.out
./a.out
Run Code Online (Sandbox Code Playgroud)
但是,这不会生成gmon.out
应该的文件.当我尝试gprof
在终端输入时,它说:
gprof: can't open: gmon.out (No such file or directory)
Run Code Online (Sandbox Code Playgroud)
这是预料到的,因为gmon.out
不存在......
关于我做错了什么的任何想法?
编辑:其他一些可能有帮助的事情:
我的朋友,有一个类似的OS X版本(我可以让他后来确认),以及完全相同的版本,g++
并且gprof
能够gprof
成功使用,如我所概述的那样.
我使用的是旧版本,g++
但我在网上看到更新到新版本并没有帮助.
a.out
完美的作品,它打印出Hello world!
和Goodbye world!
.我还尝试使用更复杂的C++程序和几个类,它仍然有同样的问题.一切都编译并正常运行,但没有生成gmon.out文件.
我想从特定目录中的远程目标复制所有文件writegrid
,但不复制子目录,例如中的文件writegrid/output_files
.
这个
scp -r cory@blah.com:~/writegrid/* ./
Run Code Online (Sandbox Code Playgroud)
也将复制文件writegrid/output_files
.
谢谢.
我想知道如何在V8中管理内存.看看这个例子:
function requestHandler(req, res){
functionCall(req, res);
secondFunctionCall(req, res);
thirdFunctionCall(req, res);
fourthFunctionCall(req, res);
};
var http = require('http');
var server = http.createServer(requestHandler).listen(3000);
Run Code Online (Sandbox Code Playgroud)
在req
和res
变量在每个函数调用过去了,我的问题是:
是否可以通过引用传递变量,请看这个例子.
var args = { hello: 'world' };
function myFunction(args){
args.newHello = 'another world';
}
myFunction(args);
console.log(args);
Run Code Online (Sandbox Code Playgroud)
最后一行,console.log(args);
将打印:
"{ hello: 'world', newWorld: 'another world' }"
Run Code Online (Sandbox Code Playgroud)感谢您的帮助和答案:)
到目前为止,我发现的最佳解决方案是使用该sleep()
功能.我想在计时器到期事件发生时运行我自己的回调函数.是否有任何事件驱动的方式去做?
from time import sleep
# Sleep for a minute
time.sleep(60)
Run Code Online (Sandbox Code Playgroud) 我有一个Jmeter线程组,它在uuid
整个过程中多次使用该变量.
uuid
定义为 12345678-1234-4444-a123-${__Random(111111111111,999999999999)}
换句话说,它以固定系列开始,12345678-1234-4444-a123-
然后随机化最后十二个字符.
我想同时运行多个线程,这给出了以下问题.
当我uuid
在线程组中定义为用户定义的变量时,它会随机化一次,然后将该值用于我的所有线程.如果我将它设置为全球,则会发生同样的事情.
当我完成时,我将同时运行数千个线程,因此我无法进行手动解决方案或读取/写入磁盘.
有没有人有这方面的经验?我已经通过文档和谷歌了很长一段时间,但似乎无法找到解决方案.
简而言之:我需要随机化一个变量,在整个线程组中使用该变量,并在几个同时线程中运行该线程组.变量在每个不同的线程中应该具有不同的随机值.
在Scala中,我可以做get(#)
或getAs[Type](#)
从数据帧中获取值.我应该怎么做pyspark
?
我有两列DataFrame:item(string)
和salesNum(integers)
.我做了一个groupby
并mean
得到这样的数字的平均值:
saleDF.groupBy("salesNum").mean()).collect()
它的工作原理.现在我在数据框中有一个值的平均值.
如何从数据框中获取该值以将均值作为浮点数?
我有一个Mongo数据库,在users集合中我只有1个文档.我使用用户名过滤器执行find()和findOne()操作.我认为我认为是find()操作的错误结果.
MongoDB shell version: 3.2.10
connecting to: test
Server has startup warnings:
2016-10-20T20:37:32.681-0700 I CONTROL [initandlisten]
2016-10-20T20:37:32.681-0700 I CONTROL [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/enabled is 'always'.
2016-10-20T20:37:32.681-0700 I CONTROL [initandlisten] ** We suggest setting it to 'never'
2016-10-20T20:37:32.681-0700 I CONTROL [initandlisten]
2016-10-20T20:37:32.681-0700 I CONTROL [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/defrag is 'always'.
2016-10-20T20:37:32.681-0700 I CONTROL [initandlisten] ** We suggest setting it to 'never'
2016-10-20T20:37:32.681-0700 I CONTROL [initandlisten]
> use lab2
switched to db lab2
> db.users.find()
{ "_id" : ObjectId("5807ac0765f24dd0660e4332"), "username" : "avtrulzz", …
Run Code Online (Sandbox Code Playgroud) 我试图改变data_df
它的类型float64
来int
.
data_df['grade'] = data_df['grade'].astype(int)
Run Code Online (Sandbox Code Playgroud)
我收到以下错误.
int()的基数为10的无效文字:'17 .44'
我想计算每列的平均值而不指定所有列名称。
例如,不要这样做:
res = df.select([mean('col1'), mean('col2')])
Run Code Online (Sandbox Code Playgroud)
我想做一些相当于:
res = df.select([mean('*')])
Run Code Online (Sandbox Code Playgroud)
那可能吗?