Issue
why when i run it nothing appears?
from concurrent.futures import ThreadPoolExecutor
import os, sys, json, requests, hashlib
G = '\033[1;32m'
R = '\033[1;91m'
W = '\033[1;97m'
B = '\033[1;94m'
def saekomatsushita(tofu):
N = 7
token = ''.join(random.choices(string.ascii_letters, k=N))
print(tofu + ' - ' + token)
with ThreadPoolExecutor(max_workers=30) as sh:
e = open('j.txt').read()
_ = [sh.submit(saekomatsushita, e)]
Please help, I'm very tired because of this one problem
Solution
You didn't import the string
and random
modules. This will cause an error and your subthread will terminate. You don't see any error message because ThreadPoolExecutor
threads don't print any exception
message when any exception occur. Because your saekomatsushita()
function will be executed like below ;
try:
saekomatsushita()
except BaseException as exc:
# something
To solve this, you can use try except
block in your subthread (in saekomatsushita
func), or you can call result()
method of future object.
Here is the description of result(timeout=None) method in the doc:
result(timeout=None) :
Return the value returned by the call. If the call hasn’t yet completed then this method will wait up to timeout seconds. If the call hasn’t completed in timeout seconds, then a concurrent.futures.TimeoutError will be raised. timeout can be an int or float. If timeout is not specified or None, there is no limit to the wait time.
If the future is cancelled before completing then CancelledError will be raised.
If the call raised an exception, this method will raise the same exception.
Here is the first solution ;
from concurrent.futures import ThreadPoolExecutor
import os, sys, json, requests, hashlib
G = '\033[1;32m'
R = '\033[1;91m'
W = '\033[1;97m'
B = '\033[1;94m'
def saekomatsushita(tofu):
try:
N = 7
token = ''.join(random.choices(string.ascii_letters, k=N))
print(tofu + ' - ' + token)
except Exception as e:
print("error: {}".format(e))
with ThreadPoolExecutor(max_workers=30) as sh:
e = open('j.txt').read()
_ = [sh.submit(saekomatsushita, e)]
Here is the second solution :
from concurrent.futures import ThreadPoolExecutor
import os, sys, json, requests, hashlib
G = '\033[1;32m'
R = '\033[1;91m'
W = '\033[1;97m'
B = '\033[1;94m'
def saekomatsushita(tofu):
N = 7
token = ''.join(random.choices(string.ascii_letters, k=N))
print(tofu + ' - ' + token)
with ThreadPoolExecutor(max_workers=30) as sh:
e = open('j.txt').read()
future = sh.submit(saekomatsushita, e)
future.result()
Answered By - Veysel Olgun
0 comments:
Post a Comment
Note: Only a member of this blog may post a comment.