2 Python的安装和使用

本文通过具体示例展示了TensorFlow的基本使用方法及OpenCV在图片显示中的应用,并深入探讨了多线程环境下变量同步与非同步操作的区别,包括线程间的竞争条件问题及其解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

TensorFlow测试:
程序2-1:

import tensorflow as tf

hello = tf.constant("hello tensorflow")
sess = tf.Session()

print(sess.run(hello))

结果:

b'hello tensorflow'

OpenCV测试:
程序2-2:

import cv2

jpg = cv2.imread("E:/pictures/wallpaper/000.png")
cv2.imshow("test.jpg",jpg)
cv2.waitKey()

结果:
在这里插入图片描述
threading模块中最重要的Thread类
程序2-3:

# coding = utf8
import threading, time

count = 0


class MyThread(threading.Thread):
    def __init__(self, threadName):
        super(MyThread, self).__init__(name=threadName)

    def run(self):
        global count
        for i in range(100):
            count = count + 1
            #每隔0.3秒打印输出本线程的计数
            time.sleep(0.3)
            print(self.getName(), count)


for i in range(2):
    MyThread("MyThreadName:" + str(i)).start()

结果:

MyThreadName:1MyThreadName:0 2 2
MyThreadName:1MyThreadName:0 4 4
MyThreadName:0 MyThreadName:1 6
6
MyThreadName:1MyThreadName:0 8 
8
MyThreadName:1 10
MyThreadName:0 11
MyThreadName:0MyThreadName:1 12 12
MyThreadName:1 14
MyThreadName:0 15
MyThreadName:1 MyThreadName:0 1616
MyThreadName:1 MyThreadName:0 1818
MyThreadName:1MyThreadName:0 20
 20
MyThreadName:1MyThreadName:0 22 22
MyThreadName:1 24
MyThreadName:0 25
MyThreadName:1 26
MyThreadName:0 27
MyThreadName:1 28
MyThreadName:0 29
MyThreadName:1 30
MyThreadName:0 31
MyThreadName:1 32MyThreadName:0 32
MyThreadName:1 MyThreadName:034
 34
MyThreadName:1MyThreadName:0 36 36
MyThreadName:1 38MyThreadName:0 
38
MyThreadName:1MyThreadName:0 40 40
MyThreadName:1 42
MyThreadName:0 43
MyThreadName:1 44
MyThreadName:0 45
MyThreadName:1 46MyThreadName:0 46
MyThreadName:1 48
MyThreadName:0 49
MyThreadName:1MyThreadName:0 50
 50
MyThreadName:1MyThreadName:0  52
52
MyThreadName:1 54MyThreadName:0 54
MyThreadName:1 56
MyThreadName:0 57
MyThreadName:0 58
MyThreadName:1 59
MyThreadName:1 60
MyThreadName:0 61
MyThreadName:1MyThreadName:0 62
 62
MyThreadName:1 64
MyThreadName:0 65
MyThreadName:0 66
MyThreadName:1 67
MyThreadName:1MyThreadName:0 68 68
MyThreadName:1 70
MyThreadName:0 71
MyThreadName:0 72
MyThreadName:1 73
MyThreadName:0 MyThreadName:1 74
74
MyThreadName:1MyThreadName:0 76 76
MyThreadName:1MyThreadName:0 78
 78
MyThreadName:0 80
MyThreadName:1 81
MyThreadName:0 82
MyThreadName:1 83
MyThreadName:0 84
MyThreadName:1 85
MyThreadName:0 86
MyThreadName:1 87
MyThreadName:0 88
MyThreadName:1 89
MyThreadName:1 90
MyThreadName:0 91
MyThreadName:0 92
MyThreadName:1 93
MyThreadName:1 94
MyThreadName:0 95
MyThreadName:1 96
MyThreadName:0 97
MyThreadName:1MyThreadName:0 98
 98
MyThreadName:0 100
MyThreadName:1 101
MyThreadName:1MyThreadName:0  102
102
MyThreadName:1 104
MyThreadName:0 105
MyThreadName:1 MyThreadName:0 106106
MyThreadName:1 MyThreadName:0 108108
MyThreadName:1 110
MyThreadName:0 111
MyThreadName:1 112
MyThreadName:0 112
MyThreadName:1 114
MyThreadName:0 115
MyThreadName:1MyThreadName:0 116
 116
MyThreadName:1MyThreadName:0 118
 118
MyThreadName:1MyThreadName:0  120120
MyThreadName:1MyThreadName:0  122
122
MyThreadName:0 124MyThreadName:1 124
MyThreadName:1 126
MyThreadName:0 127
MyThreadName:1MyThreadName:0 128
 128
MyThreadName:1MyThreadName:0 130
 130
MyThreadName:0MyThreadName:1 132
 132
MyThreadName:1 MyThreadName:0 134134
MyThreadName:1 136
MyThreadName:0 136
MyThreadName:0 138
MyThreadName:1 139
MyThreadName:1MyThreadName:0 140
 140
MyThreadName:1MyThreadName:0 142
 142
MyThreadName:1MyThreadName:0 144
 144
MyThreadName:1 MyThreadName:0 146146
MyThreadName:1 MyThreadName:0 148
148
MyThreadName:1 150
MyThreadName:0 151
MyThreadName:1 152
MyThreadName:0 153
MyThreadName:0 154
MyThreadName:1 155
MyThreadName:1 156
MyThreadName:0 157
MyThreadName:1 158
MyThreadName:0 159
MyThreadName:1 MyThreadName:0 160
160
MyThreadName:1MyThreadName:0 162 162
MyThreadName:1 164
MyThreadName:0 165
MyThreadName:1 166
MyThreadName:0 167
MyThreadName:1 168
MyThreadName:0 169
MyThreadName:1 170
MyThreadName:0 171
MyThreadName:0MyThreadName:1  172
172
MyThreadName:1 174
MyThreadName:0 175
MyThreadName:1 176MyThreadName:0 176
MyThreadName:1 MyThreadName:0 178
178
MyThreadName:1MyThreadName:0 180
 180
MyThreadName:0 182
MyThreadName:1 183
MyThreadName:1 184
MyThreadName:0 185
MyThreadName:1MyThreadName:0 186
 186
MyThreadName:1MyThreadName:0 188 188
MyThreadName:1 190
MyThreadName:0 190
MyThreadName:1MyThreadName:0 192 192
MyThreadName:1MyThreadName:0 194 194
MyThreadName:0MyThreadName:1 196
 196
MyThreadName:1 198MyThreadName:0 198
MyThreadName:1MyThreadName:0 200 200

threading中的Lock类
程序2-4:

# coding = utf8
import threading, time, random

count = 0


class MyThread(threading.Thread):

    def __init__(self, lock, threadName):
        super(MyThread, self).__init__(name=threadName)
        self.lock = lock

    def run(self):
        global count
        self.lock.acquire()#确定对象被锁定
        for i in range(100):
            count = count + 1
            time.sleep(0.3)
            print(self.getName(), count)
        self.lock.release()


lock = threading.Lock()
for i in range(2):
    MyThread(lock, "MyThreadName:" + str(i)).start()

结果:

...
MyThreadName:0 95
MyThreadName:0 96
MyThreadName:0 97
MyThreadName:0 98
MyThreadName:0 99
MyThreadName:0 100
MyThreadName:1 101
MyThreadName:1 102
MyThreadName:1 103
MyThreadName:1 104
MyThreadName:1 105
...

threading中的join类
程序2-5:

import threading, time

def doWaiting():
    print('start waiting:', time.strftime('%S'))
    time.sleep(3)
    print('stop waiting', time.strftime('%S'))
    thread1 = threading.Thread(target=doWaiting)
    thread1.start()
    time.sleep(1)  # 确保线程thread1已经启动
    print('start join')
    thread1.join()  # 将一直堵塞,直到thread1运行结束。
    print('end join')
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值