python

写着玩的


最近学习了下python  确实是一门比较好的脚本语言
主要学习的地方时廖雪峰的个人网站http://www.liaoxuefeng.com/  

python 和 java 语言有很多相似之处,以后坚持每天写一点。主要为了学习新语言,复习旧语言,两者同时进行的时候获取新的内容。

		System.out.println("harry------mian" + Thread.currentThread());
		Thread myThread = new Thread(new Runnable() {
			@Override
			public void run() {
				for(int i = 0;i < 5;i++){
					System.out.println("harry----myThread" + Thread.currentThread());
					try {
						Thread.sleep(1000);
					} catch (InterruptedException e) {
						e.printStackTrace();
					}
				}
			}
		});
		
		myThread.start();

打印结果

harry------mianThread[main,5,main]
harry----myThreadThread[Thread-0,5,main]
harry----myThreadThread[Thread-0,5,main]
harry----myThreadThread[Thread-0,5,main]
harry----myThreadThread[Thread-0,5,main]
harry----myThreadThread[Thread-0,5,main]

java代码中  Thread是线程的集成类,创建线程就是new 出来一个Thread对象,开启线程是调用对象的start()方法,线程是为了执行内容的,内容就是线程体,java语言的线程体就是Runnable接口的实例

import time, threading

# 新线程执行的代码:
def loop():
    print 'thread %s is running...' % threading.current_thread().name
    n = 0
    while n < 5:
        n = n + 1
        print 'thread %s >>> %s' % (threading.current_thread().name, n)
        time.sleep(1)
    print 'thread %s ended.' % threading.current_thread().name

print 'thread %s is running...' % threading.current_thread().name
t = threading.Thread(target=loop, name='LoopThread')
t.start()
t.join()
print 'thread %s ended.' % threading.current_thread().name
上面是从廖雪峰官网拷贝过来的代码块儿。

首先是import   在java语言中也有import 不过通常在ide的帮助下,这东西几乎被忽略了。

然后定义了loop方法,这个相当于java中的 那个Runnable接口,python的面向对象做的更彻底些。

关键语句 

t= threading.Thread(target=loop,name='loopThread')

t.start()

t.join()

如果上面的java代码没有使用匿名内部类来实现线程体的内容这两块儿代码就更相似了。这里python调用了t.join() java代码只是调用了start这个方法,

、、、、疑问:调用join是什么意思?学艺不精啊,java线程都没搞通

多进程时变量都是自己享有的,不同进程间需要数据交换的话需要进行进程间通信

多线程变量是线程见共享的,这个是个好处,就是不需要通信了,坏处会出现同步问题。多个线程操作同一个变量会出现意想不到的结果。这个和数据库脏数据有类似的感觉。解决思路也是一样的,锁













你可能感兴趣的:(杂项)