Threads – Python – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Threads – Python – Fórum – Programujte.comThreads – Python – Fórum – Programujte.com

 

petrk.
~ Anonymní uživatel
4 příspěvky
24. 1. 2018   #1
-
0
-

dobry den,

mam dotaz ohledne vlaknech ve tride

class Priklad():
    threads = []

    lineactions = []#radky nactene ze souboru ktere zpracovavam v run
 

    def run(self,lineaction):

        #kod ve vlaknu

    def runall(self):
        for lineaction in self.lineactions:
            thread = threading.Thread(target=self.run,args=(lineaction,))
            thread.start()
            self.threads.append(thread)
            print("nastartovano:",thread)

    def exit(self):
        for thread in self.threads:
            print("cekam na ukonceni",thread)
            thread.join()
            self.threads.remove(thread)
            print("ukoncen",thread)

____________________________

a v mainu:

priklad.runall()
priklad.wait()

mi ukonci pouze jedno vlakno a ty ostatni se nesmazou jakym zpusobem se da v metode pockat nez skonci vsechny vlakna a smazat je z threads[]

dekuju za radu, snad se mi to podarilo vypsat v poradku (z slozitejsiho projektu )

Nahlásit jako SPAM
IP: 80.251.241.–
petrk.
~ Anonymní uživatel
4 příspěvky
24. 1. 2018   #2
-
0
-

#1 petrk.
misto priklad.wait() ma byt priklad.exit()

Nahlásit jako SPAM
IP: 80.251.241.–
gna
~ Anonymní uživatel
1851 příspěvků
24. 1. 2018   #3
-
-1
-
Mimo téma

Měníš list, který zrovna procházíš. Můžeš pro procházení použít kopii:

for thread in self.threads[:]:
	thread.join()
	self.threads.remove(thread)

Nebo v případě jako tento, ho úplně zrušit až po průchodu:

for thread in self.threads:
	thread.join()
self.threads = []

Jiný problém nevidím.

Nahlásit jako SPAM
IP: 213.211.51.–
petrk.
~ Anonymní uživatel
4 příspěvky
25. 1. 2018   #4
-
0
-

#3 gna
diky moc ten prvni priklad pomohl, zacatecni  v pythonu, programuju jen v ansi c a neni mi jeste jasne jak spravne psat ty vlakna /nevite o nejakem projektu na githubu nebo nejakou literaturu kde se to da zjistit, v manualu je jen priklad, ale chybi mi zasazeni do projektu


self.threads[:]
co to presne dela  ta kopie, myslel jsem ze ten for bude cekat nez skonci prvni a pak i nez druhy

diky moc za pomoc a ochotu

Nahlásit jako SPAM
IP: 80.251.241.–
gna
~ Anonymní uživatel
1851 příspěvků
25. 1. 2018   #5
-
-1
-
Mimo téma

Měníš list, který zrovna procházíš.

Když budeš procházet kopii a odmazávat z originálu, tak se ti procházení nerozbije.

Vlákna v Pythonu jsou použitelné jen pro pomalé I/O, jinak jsou na ... k ničemu. Jestli je chceš plně využít a pořádně pochopit, tak to zkus v Céčku.

Nahlásit jako SPAM
IP: 213.211.51.–
petrk.
~ Anonymní uživatel
4 příspěvky
26. 1. 2018   #6
-
0
-

#5 gna
v cecku je prave znam, co se mysli tim pomale? je to preci vec kterou pouzivam v programu dost bezne (teda vetsinou nejde o casove kriticke operace ,kdyby slo- slo by nejak rozumne napojit cecko s pythonem?

Nahlásit jako SPAM
IP: 80.251.241.–
gna
~ Anonymní uživatel
1851 příspěvků
26. 1. 2018   #7
-
-1
-
Mimo téma

#6 petrk.
Pokud znáš vlákna v Céčku, tak je znáš i kdekoliv jinde.

Pomalé z hlediska strojového času a prováděné systémem na pozadí, takže jiné vlákno má volný intepreter.

Napojit jde obousměrně. Do Céčka jde embednout Python a pro Python jde psát moduly v Céčku (nebo volat funkce z nativních knihoven).

Nahlásit jako SPAM
IP: 213.211.51.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 6 hostů

Podobná vlákna

Threads — založil griylz1326

SQLite and threads — založil a

Threads - VB.net — založil Rich

Vlakna(Threads) - priorita — založil NotBeginner

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý