Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
70 changes: 70 additions & 0 deletions QUIS SISTER 1/Eni Lestari/Condition.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
import logging
import threading
import time

LOG_FORMAT = '%(asctime)s %(threadName)-17s %(levelname)-8s %(message)s'
logging.basicConfig(level=logging.INFO, format=LOG_FORMAT)

items = []
condition = threading.Condition()


class Mahasiswa(threading.Thread):
def _init_(self, *args, **kwargs):
super()._init_(*args, **kwargs)

def urut(self):

with condition:

if len(items) == 5:
logging.info('no urut')
condition.wait()

items.pop()
logging.info('no urut {}'.format(len(items)))

condition.notify()

def run(self):
for i in range(7):
time.sleep(2)
self.urut()


class Dosen(threading.Thread):
def _init_(self, *args, **kwargs):
super()._init_(*args, **kwargs)

def Quiz(self):

with condition:

if len(items) == 13:
logging.info('Quiz {}. Stopped'.format(len(items)))
condition.wait()

items.append(1)
logging.info('waktu Quiz {}'.format(len(items)))

condition.notify()

def run(self):
for i in range(20):
time.sleep(0.5)
self.Quiz()


def main():
urut = Mahasiswa(name='Mahasiswa')
Quiz = Dosen(name='Dosen')

urut.start()
Quiz.start()

urut.join()
Quiz.join()


if __name__ == "__main__":
main()
47 changes: 47 additions & 0 deletions QUIS SISTER 1/Eni Lestari/Event.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
import logging
import threading
import time
import random

LOG_FORMAT = '%(asctime)s %(threadName)-17s %(levelname)-8s %(message)s'
logging.basicConfig(level=logging.INFO, format=LOG_FORMAT)

items = []
event = threading.Event()


class Mahasiswa(threading.Thread):
def _init_(self, *args, **kwargs):
super()._init_(*args, **kwargs)

def run(self):
while True:
time.sleep(2)
event.wait()
item = items.pop()
logging.info('Mahasiswa notify: {} Mahasiswa menuju ruang Dosen {}'\
.format(item, self.name))

class Dosen(threading.Thread):
def _init_(self, *args, **kwargs):
super()._init_(*args, **kwargs)

def run(self):
for i in range(5):
time.sleep(2)
item = random.randint(0, 100)
items.append(item)
logging.info('Dosen notify: Dosen menandatangani laporan hasil proyek3 Mahasiswa {}'\
.format(item, self.name))
event.set()
event.clear()

if __name__ == "__main__":
t1 = Mahasiswa()
t2 = Dosen()

t1.start()
t2.start()

t1.join()
t2.join()
57 changes: 57 additions & 0 deletions QUIS SISTER 1/Eni Lestari/MyThreadClass.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
import threading
import time
import os
from threading import Thread
from random import randint

# Lock Definition
threadLock = threading.Lock()

class CerdasCermat (Thread):
def _init_(self, name, duration):
Thread._init_(self)
self.name = name
self.duration = duration
def run(self):
#Acquire the Lock
threadLock.acquire()
print ("---> " + self.name + \
" kodenya adalah "\
+ str(os.getpid()) + "\n")
threadLock.release()
time.sleep(self.duration)
print ("---> " + self.name + " telah siap \n")
#Release the Lock


def main():
start_time = time.time()

# Thread Creation
thread1 = CerdasCermat("Ruangan Cerdas cermat IPA yang digunakan ", randint(1,10))
thread2 = CerdasCermat("Soal 4", randint(1,10))



# Thread Running
thread1.start()
thread2.start()



# Thread joining
thread1.join()
thread2.join()


# End
print("Selamat Datang di Ruangan Cerdas cermat IPA para peserta acara lomba ")
print("Selamat Mengerjakan ")

#Execution Time
print("waktu yang dibutuhkan untuk mengerjakan soal %s seconds soal" % (time.time() - start_time))



if __name__ == "_main_":
main()
45 changes: 45 additions & 0 deletions QUIS SISTER 1/Eni Lestari/MyThreadClass_lock.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
import time
import os
from random import randint
from threading import Thread

class Mahasiswa (Thread):
def _init_(self, name, duration):
Thread._init_(self)
self.name = name
self.duration = duration
def run(self):
print ("---> " + self.name + \
" Mahasiswa diberikan no urut "\
+ str(os.getpid()) + "\n")
time.sleep(self.duration)
print ("---> " + self.name + " over\n")


def main():
start_time = time.time()

# Thread Creation
thread1 = Mahasiswa("no urut mahasiswa ", randint(1,10))
thread2 = Mahasiswa("no urut mahasiswa", randint(1,10))


# Thread Running
thread1.start()
thread2.start()


# Thread joining
thread1.join()
thread2.join()


# End
print("End")

#Execution Time
print("--- %s seconds ---" % (time.time() - start_time))


if __name__ == "_main_":
main()
49 changes: 49 additions & 0 deletions QUIS SISTER 1/Eni Lestari/MyThreadClass_lock_2.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
import threading
import time
import os
from threading import Thread
from random import randint

# Lock Definition
threadLock = threading.Lock()

class Mahasiswa (Thread):
def _init_(self, name, duration):
Thread._init_(self)
self.name = name
self.duration = duration
def run(self):
print ("---> " + self.name + \
" mahasiswa diberikan no urut "\
+ str(os.getpid()) + "\n")
time.sleep(self.duration)
print ("---> " + self.name + " over\n")


def main():
start_time = time.time()

# Thread Creation
thread1 = Mahasiswa("no urut mahasiswa ", randint(1,10))
thread2 = Mahasiswa("no urut mahasiswa", randint(1,10))


# Thread Running
thread1.start()
thread2.start()


# Thread joining
thread1.join()
thread2.join()


# End
print("End")

#Execution Time
print("--- %s seconds ---" % (time.time() - start_time))


if __name__ == "_main_":
main()
18 changes: 18 additions & 0 deletions QUIS SISTER 1/Eni Lestari/Thread_definition.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
import threading


def jilbab(thread_number):
return print('Jumlah Jilbab yang ada ditoko{} pcs'.format(thread_number))


def main():
threads = []
for i in range(10):
t = threading.Thread(target=jilbab, args=(i,))
threads.append(t)
t.start()
t.join()


if __name__ == "__main__":
main()
33 changes: 33 additions & 0 deletions QUIS SISTER 1/Eni Lestari/Thread_determine.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
import threading
import time

from django.urls import clear_script_prefix

def Minum_Sahur():
print (threading.currentThread().getName()+str('--> Energen Coklat \n'))
time.sleep(3)
print (threading.currentThread().getName()+str( '-->selesai minum energen coklat \n'))
return

def Minum_Buka():
print (threading.currentThread().getName()+str('--> Es Buah \n'))
time.sleep(2)
print (threading.currentThread().getName()+str( '--> selesai minum es buah \n'))
return




if __name__ == "__main__":

t1 = threading.Thread(name='Minum_Sahur', target=Minum_Sahur)
t2 = threading.Thread(name='Minum_Buka', target=Minum_Buka)


t1.start()
t2.start()
clear_script_prefix

t1.join()
t2.join()

38 changes: 38 additions & 0 deletions QUIS SISTER 1/Eni Lestari/Thread_name_and_processes.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
from threading import Thread
import time
import os

class TarianClass (Thread):
def __init__(self, name):
Thread.__init__(self)
self.name = name

def run(self):
print("Tarian Khas Sumatera Selatan {}".format(self.name)) #, " is {} \n".format(os.getpid()))

def main():
from random import randint
# Thread Creation
thread1 = TarianClass("Gending Sriwijaya")
thread2 = TarianClass("Tanggai")
thread3 = TarianClass("Erai-Erai")
thread4 = TarianClass("Setudung Sedulang")

# Thread Running
thread4.start()
thread2.start()
thread3.start()
thread1.start()


# Thread joining
thread1.join()
thread2.join()
thread3.join()
thread4.join()

# End
print("End")

if __name__ == "__main__":
main()
Loading