We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
There was an error while loading. Please reload this page.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
You have to believe in yourself, that's the secret of success.
errType
CSRF
JSONP
Jenkins
SQL
Queue
FIFO
First In First Out
class Queue.Queue(maxsize=0)
maxsize
LIFO
Last In First Out
class Queue.LifoQueue(maxsize=0)
heapq
class Queue.PriorityQueue(maxsize=0)
LifoQueue
PriorityQueue
Queue.qsize()
get()
put()
Queue.empty()
True
False
Queue.full()
Queue.put(item[,block[,timeout]])
item
block
timeout
Full
Queue.put_nowait(itme)
put(item,False)
Queue.get([block[,timeout]])
Empty
Queue.get_nowait()
get(False)
Queue.task_done()
task_done()
join()
ValueError
Queue.join()
from Queue import Queue # FIFO模式,先进先出 q = Queue() for i in range(8): q.put(i) while not q.empty(): print q.get(),
threading
Thread
run()
__init__()
start()
threading.Thread(group=None,target=None,name=None,args=(),kwargs={})
group
None
ThradGroup
target
name
args
kwargs
#!/usr/bin/env python # coding=utf-8 from threading import Thread from Queue import Queue import urllib2 hosts = [ 'http://www.baidu.com', 'http://news.163.com/', 'http://weibo.com/', 'http://blog.163.com' ] #创建一个类继承Thread类 class TestThread(Thread): # 重写构造函数,继承Thread def __init__(self, queue): Thread.__init__(self) self.queue = queue # 重写run()函数 def run(self): while 1: host = self.queue.get() res = urllb2.urlopen(host) print res.read(200) print '**' * 20 self.queue.task_done() def main(): q = Queue() for host in hosts: q.put(host) for i in range(len(hosts)): t = TestThread(q) t.setDaemon(True) t.start() # 阻塞调用线程,直到队列中任务全部处理完成 q.join() if __name__ == '__main__': main()
Lock
The text was updated successfully, but these errors were encountered:
No branches or pull requests
0x01 Wooyun
errType
为0(不带双引号),发出这个包,修改密码CSRF
JSONP
劫持Jenkins
系统未授权访问可执行系统命令SQL
注入0x02 爬虫实战一
Queue
模块:提供了一个适用于多线程编程的先进先出数据结构,可以用来安全的传递多线程信息FIFO
:First In First Out
,最早加入的任务会被最先得到class Queue.Queue(maxsize=0)
maxsize
是个整数指明了队列中能存放数据个数的上限,一旦达到上限,插入会导致阻塞,直到队列中的数据被消费掉,如果maxsize
小于或等于0,队列大小没有限制。LIFO
:Last In First Out
,最后加入的任务会被最先得到(就像栈一样)class Queue.LifoQueue(maxsize=0)
maxsize
是个整数指明了队列中能存放数据个数的上限,一旦达到上限,插入会导致阻塞,直到队列中的数据被消费掉,如果maxsize
小于或等于0,队列大小没有限制。heapq
模块),拥有最小值的任务(优先级最高)被最先得到class Queue.PriorityQueue(maxsize=0)
Queue
对象(Queue
、LifoQueue
、PriorityQueue
)Queue.qsize()
返回队列的近似大小,队列大小大于0并不保证接下来的get()
调用不会被阻塞,队列大小小于maxsize
也不保证接下来的put()
调用不会被阻塞Queue.empty()
队列为空,返回True
,否则False
。如果返回True
并不能保证接下来的put()
调用不会被阻塞,False
也不保证get()
不会被阻塞Queue.full()
队列是满的返回True
,否则返回False
,如果返回True
并不能保证接下来的get()
不会阻塞,False
也不能保证put()
不会被阻塞Queue.put(item[,block[,timeout]])
item
放入队列中,如果可选参数block
为真且timeout
为空对象(默认的情况,阻塞调用,无超时),如有必要(比如队列满),阻塞调用线程,直到有空闲槽可用。如果timeout
是个正整数,阻塞调用进程最多timeout
秒,如果一直无空闲槽可用,抛出Full
异常(带超时的阻塞调用)。如果block
为假,如果有空闲槽可用将数据放入队列,否则立即抛出Full
异常(非阻塞调用,timeout
被忽略)Queue.put_nowait(itme)
等同于put(item,False)
(非阻塞调用)Queue.get([block[,timeout]])
block
为真且timeout
为空对象(默认的情况,阻塞调用,无超时),阻塞调用进程直到有数据可用,如果timeout
是正整数,阻塞调用进程最多timeout
秒,如果一直无数据可用,抛出Empty
异常(带超时的阻塞调用),如果block
为假,如果有数据可用返回数据,否则立即抛出Empty
异常(非阻塞调用,timeout
被忽略)Queue.get_nowait()
等同于get(False)
Queue
对象提供了两个额外的方法Queue.task_done()
get()
调用得到一个任务,接下来的task_done()
调用告诉队列该任务已经处理完毕。如果当前一个join()
正在阻塞,它将在队列中的所有任务都处理完时恢复执行(即每一个由put()
调用入队的任务都有一个对应的task_done()
调用)。如果该方法被调用的次数多于被放入队列中的任务的个数,ValueError
异常会被抛出。Queue.join()
task_done()
(意味着有消费者取得任务并完成任务),未完成的任务数就会减少。当未完成的任务数降到0,join()
解除阻塞。threading
模块Thread
对象 表示在单独的一个控制线程中运行的一个活动,有两种指定活动的方法run()
方法(注意: 在子类中不应该覆盖其他方法(构造函数除外),只能覆盖__init__()
和run()
方法)start()
方法启动,它在单独的一个控制线程中调用run()
方法threading.Thread(group=None,target=None,name=None,args=(),kwargs={})
group
为None
,被保留用于未来实现ThradGroup
类时的扩展target
是将run()
方法调用的可调用对象,默认None
,表示不调用任何东西name
是线程名字args
是给调用目标的参数元组,默认()kwargs
是给调用目标的关键字参数的一个字典,默认{}Lock
0x03 一天总结
The text was updated successfully, but these errors were encountered: