コード例 #1
0
                    if super().stopped():
                        print('Task was Cancelled')
                        counter = -1
                        return counter

                    if ints[i] + ints[j] + ints[k] == 0:
                        counter += 1
                        print(f'Triple found:{ints[i]}, {ints[j]}, {ints[k]}',
                              end='\n')

        print(f'ended count_three_sum. Triplets counter={counter}')
        return counter


if __name__ == '__main__':
    print('started main')

    ints = read_ints('..\\data\\1Kints.txt')

    task = ThreeSumUnitOfWork(ints)
    task.start()

    time.sleep(10)

    task.stop()

    task.join()

    print(task.stopped())
    print('ended main')
コード例 #2
0
@measure_time
def run_in_parallel(ints):
    t1 = threading.Thread(target=count_three_sum,
                          daemon=True,
                          args=(ints, 't1'))
    t2 = threading.Thread(target=count_three_sum,
                          daemon=True,
                          args=(ints, 't2'))

    t1.start()
    t2.start()

    t1.join()
    t2.join()


@measure_time
def run_sequentially(ints):
    count_three_sum(ints)
    count_three_sum(ints)


if __name__ == "__main__":
    print("start")
    ints = read_ints("./ints/1Kints.txt")

    run_in_parallel(ints)
    run_sequentially(ints)

    print("Ended main")
コード例 #3
0
                          daemon=True,
                          args=(ints, 't1'))
    t2 = threading.Thread(target=count_three_sum,
                          daemon=True,
                          args=(ints, 't2'))

    t1.start()
    t2.start()

    print('\nGoing to wait for threads')

    t2.join()
    t2.join()


@measure_time
def run_in_sequentially(ints):
    count_three_sum(ints, 'main')
    count_three_sum(ints, 'main')


if __name__ == '__main__':
    print('Started main')

    ints = read_ints('../data/2Kints.txt')

    run_in_parallel(ints)  # Executed time is 271.11 seconds.
    run_in_sequentially(ints)  # Executed time is 266.25 seconds.

    print('Ended main')
コード例 #4
0

@measure_time
def run_in_parallel(ints):
    t1 = threading.Thread(target=count_three_sum, daemon=True, args=(ints, 't1'))
    t2 = threading.Thread(target=count_three_sum, daemon=True, args=(ints, 't2'))

    t1.start()
    t2.start()

    print('\nGoing to wait for threads')

    t1.join()
    t2.join()


@measure_time
def run_sequentially(ints):
    count_three_sum(ints, 'main')
    count_three_sum(ints, 'main')


if __name__ == '__main__':
    print('started main')
    ints = read_ints("..\\\data\\1Kints.txt")

    run_in_parallel(ints)
    run_sequentially(ints)

    print('ended main')
コード例 #5
0
import concurrent.futures

from multithreading.count_three_sum import count_three_sum, read_ints

if __name__ == '__main__':
    print(f"started main")

    data = read_ints('./ints/1Kints.txt')
    with concurrent.futures.ThreadPoolExecutor(max_workers=4) as executor:
        results = executor.map(count_three_sum, (data, data), ('t1', 't2'))
        for r in results:
            print(f"{r=}")

    print('ended main')
コード例 #6
0
import concurrent.futures

from multithreading.count_three_sum import read_ints, count_three_sum

if __name__ == '__main__':
    print('Started main')

    data = read_ints('../data/1Kints.txt')

    with concurrent.futures.ThreadPoolExecutor(max_workers=2) as executor:
        results = executor.map(count_three_sum, (data, data), ('t1', 't2'))
        print('After map')
        for r in results:
            print(f'{r=}')
        print('After for')

    print('Ended main')