Python Thread删除换行符?

我在程序中遇到了一个特殊的错误。该代码背后的一般思想是,首先创建5个列表的数组(称为list_of_nums)。每个列表由1到10000之间的100个数字组成。该程序然后运行5个线程。每个人都会找到一个列表的平均值,并打印完成该列表所花费的时间。

您会注意到,在threading_function()中print()语句的末尾只有一个换行符。在显示“秒。\ n”的位置。

问题是,如果我将't.join()'放在单独的'for'循环中(在我的代码的最底部),为了同时运行线程,有时会删除该换行符(显然)。如果我逐个运行线程,则只能100%地起作用。

我希望有人可以帮助我了解如何同时运行线程,同时使换行符仍然可靠。

让我用代码示例及其不正确的输出(仅在某些情况下发生)演示我的意思:

lists_of_nums = []

def create_set():    # Function for creating a list of random integers and appending them to the lists_of_nums array.

    random_nums = []

    for _ in range(100):

        random_nums.append(randint(1,10000))

    lists_of_nums.append(random_nums)

for _ in range(5):    # Five of these lists get appended to the array,by using the create_set() function.
    create_set()


def threading_function(list_index):    # Function responsible for finding the mean value of a given list as well as the time taken to do it.

    start = timeit.default_timer()

    mean_value = mean(lists_of_nums[list_index])

    end = timeit.default_timer() - start

    print(
        "The mean value of the list number " + str(list_index + 1) + " is " + str(mean_value) +
        "\nThe time taken to find it was " + str(end) + " seconds.\n" # The abovementioned newline.
        )

threads = []

for i in range(len(lists_of_nums)):

    t = Thread(target = threading_function,args = [i])
    t.start()
    threads.append(t)

for t in threads:    # If t.join() remains in a separate 'for' loop than the Thread() class,the newline occasionally disappears.
    t.join()

错误输出,换行符似乎在打印语句3和4之间消失了:

The mean value of the list number 1 is 5270.34
The time taken to find it was 0.00012170000000000236 seconds.

The mean value of the list number 2 is 4768.17
The time taken to find it was 9.239999999999943e-05 seconds.

The mean value of the list number 3 is 4766.67
The time taken to find it was 8.369999999999905e-05 seconds.
The mean value of the list number 4 is 4969.7
The time taken to find it was 9.880000000000305e-05 seconds.


The mean value of the list number 5 is 4686.21
The time taken to find it was 9.25000000000023e-05 seconds.

相关文章

功能概要:(目前已实现功能)公共展示部分:1.网站首页展示...
大体上把Python中的数据类型分为如下几类: Number(数字) ...
开发之前第一步,就是构造整个的项目结构。这就好比作一幅画...
源码编译方式安装Apache首先下载Apache源码压缩包,地址为ht...
前面说完了此项目的创建及数据模型设计的过程。如果未看过,...
python中常用的写爬虫的库有urllib2、requests,对于大多数比...