Skip to main content

muti_thread是多线程并发库

Project description

muti_thread是一个真正的多并发多线程,python3.6

# -*- coding: utf-8 -*-
import sys
sys.path.append(r'E:\algo_text\nn_csdk\build\Release')
import time
from muti_thread.muti_thread import thread_create,thread_append,thread_start_and_join
import numpy as np
vec1 = [1,2,3,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]
vec2 = [5,6,7,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]

def my_compute(n=10000):
    for i in range(n):
        dist1 = np.dot(vec1, vec2) / (np.linalg.norm(vec1) * np.linalg.norm(vec2))

class thread_param:
    def __init__(self,index):
        self.counter = 0
        self.index = index

#必须有且只有一个参数,最好是某个类的实例
#注意 , 线程函数里最好不要有import的东西 ,里面最好是执行函数
def thread_func(param):
    #param.counter += 1
    #print(param.index)
    #测试1万次
    my_compute()
    # if param.counter> 10000:
    #     print(param.index ,'end')
    #     return -1

    # ii = -1
    # while ii < 10:
    #     ii += 1
    #     print('线程', param.index, ii)
    #
    #     time.sleep(1)
    #print(param.index, 'end')
    return -1 #// 返回值小于0  退出线程 , 0 继续循环执行线程函数


def main():
    resource = thread_create()
    #并发线程
    for i in range(10):
        param = thread_param(i)
        thread_append(resource, thread_func, param)
    #开始并等待线程结束
    start = float(round(time.time() * 1000))
    thread_start_and_join(resource)
    end = float(round(time.time() * 1000))
    print('run time {}'.format (end-start))

if __name__ == '__main__':
    main()

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

muti-thread-1.1.10.linux-x86_64.tar.gz (17.9 kB view hashes)

Uploaded Source

Built Distribution

muti_thread-1.1.10-py3-none-any.whl (18.3 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page