all tasks
This commit is contained in:
parent
b83f433714
commit
68f8f3e56b
14735 changed files with 178959 additions and 0 deletions
|
|
@ -0,0 +1,31 @@
|
|||
import sys
|
||||
from Queue import Queue
|
||||
from threading import Thread
|
||||
|
||||
lines = Queue(1)
|
||||
count = Queue(1)
|
||||
|
||||
def read(file):
|
||||
try:
|
||||
for line in file:
|
||||
lines.put(line)
|
||||
finally:
|
||||
lines.put(None)
|
||||
print count.get()
|
||||
|
||||
def write(file):
|
||||
n = 0
|
||||
while 1:
|
||||
line = lines.get()
|
||||
if line is None:
|
||||
break
|
||||
file.write(line)
|
||||
n += 1
|
||||
count.put(n)
|
||||
|
||||
reader = Thread(target=read, args=(open('input.txt'),))
|
||||
writer = Thread(target=write, args=(sys.stdout,))
|
||||
reader.start()
|
||||
writer.start()
|
||||
reader.join()
|
||||
writer.join()
|
||||
|
|
@ -0,0 +1,12 @@
|
|||
count = 0
|
||||
|
||||
def reader():
|
||||
for line in open('input.txt'):
|
||||
yield line.rstrip()
|
||||
print('Printed %d lines.' % count)
|
||||
|
||||
r = reader()
|
||||
# printer
|
||||
for line in r:
|
||||
print(line)
|
||||
count += 1
|
||||
|
|
@ -0,0 +1,16 @@
|
|||
def reader():
|
||||
for line in open('input.txt'):
|
||||
yield line.rstrip()
|
||||
count = yield None
|
||||
print('Printed %d lines.' % count)
|
||||
|
||||
r = reader()
|
||||
# printer
|
||||
count = 0
|
||||
while True:
|
||||
line = next(r)
|
||||
if not line:
|
||||
break
|
||||
print(line)
|
||||
count += 1
|
||||
r.send(count)
|
||||
Loading…
Add table
Add a link
Reference in a new issue