diff options
Diffstat (limited to 'Programming_With_Java_A_Primer/chapter12.ipynb')
-rw-r--r-- | Programming_With_Java_A_Primer/chapter12.ipynb | 231 |
1 files changed, 231 insertions, 0 deletions
diff --git a/Programming_With_Java_A_Primer/chapter12.ipynb b/Programming_With_Java_A_Primer/chapter12.ipynb new file mode 100644 index 00000000..ea0f31a7 --- /dev/null +++ b/Programming_With_Java_A_Primer/chapter12.ipynb @@ -0,0 +1,231 @@ +{ + "metadata": { + "name": "", + "signature": "sha256:0815ba2045ff6b90ad464c5410843a3c00d29eb193c3c9a13b08fcf0be33a42e" + }, + "nbformat": 3, + "nbformat_minor": 0, + "worksheets": [ + { + "cells": [ + { + "cell_type": "heading", + "level": 1, + "metadata": {}, + "source": [ + "Chapter 12: Multithreaded Programming" + ] + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "example 12.1, page no. 211" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "\n", + "\"\"\"\n", + "note: the output will differ from that given in textbook as Threading in Python differs from that in J\n", + "\"\"\"\n", + "\n", + "\n", + "def threadA():\n", + " for i in range(1, 6):\n", + " print \"From Thread A: i = \", i\n", + " print \"Exit from A\"\n", + "\n", + "def threadB():\n", + " for i in range(1, 6):\n", + " print \"From Thread B: i = \", i\n", + " print \"Exit from B\"\n", + "\n", + "def threadC():\n", + " for i in range(1, 6):\n", + " print \"From Thread C: i = \", i\n", + " print \"Exit from C\"\n", + "\n", + "thread1 = Thread(target=threadA, args=())\n", + "thread2 = Thread(target=threadB, args=())\n", + "thread3 = Thread(target=threadC, args=())\n", + "\n", + "thread1.start()\n", + "thread2.start()\n", + "thread3.start()" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "From Thread C: i = 1\n", + "From Thread C: i = 2\n", + "From Thread C: i = 3\n", + "From Thread C: i = 4\n", + "From Thread C: i = 5\n", + "Exit from C\n", + "From Thread A: i = 1\n", + "From Thread A: i = 2\n", + "From Thread A: i = 3\n", + "From Thread A: i = 4\n", + "From Thread A: i = 5\n", + "Exit from A\n", + "From Thread B: i = 1\n", + "From Thread B: i = 2\n", + "From Thread B: i = 3\n", + "From Thread B: i = 4\n", + "From Thread B: i = 5\n", + "Exit from B\n" + ] + } + ], + "prompt_number": 18 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "example 12.2, page no. 217" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "\n", + "\"\"\"\n", + "there is no yield or stop function for threads in Python. Demonstrating just sleep() function\n", + "\"\"\"\n", + "\n", + "from threading import Thread\n", + "\n", + "import time\n", + "\n", + "def threadA():\n", + " for i in range(1, 6):\n", + " print \"From Thread A: i = \", i\n", + " print \"Exit from A\"\n", + "\n", + "def threadB():\n", + " for i in range(1, 6):\n", + " print \"From Thread B: i = \", i\n", + " print \"Exit from B\"\n", + "\n", + "def threadC():\n", + " for i in range(1, 6):\n", + " print \"From Thread C: i = \", i\n", + " time.sleep(0.5)\n", + " print \"Exit from C\"\n", + "\n", + "thread1 = Thread(target=threadA, args=())\n", + "thread2 = Thread(target=threadB, args=())\n", + "thread3 = Thread(target=threadC, args=())\n", + "\n", + "thread1.start()\n", + "time.sleep(0.5)\n", + "thread2.start()\n", + "time.sleep(0.5)\n", + "thread3.start()\n", + "time.sleep(0.5)" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "From Thread A: i = 1\n", + "From Thread A: i = 2\n", + "From Thread A: i = 3\n", + "From Thread A: i = 4\n", + "From Thread A: i = 5\n", + "Exit from A\n", + "From Thread B: i = 1\n", + "From Thread B: i = 2\n", + "From Thread B: i = 3\n", + "From Thread B: i = 4\n", + "From Thread B: i = 5\n", + "Exit from B\n", + "From Thread C: i = 1\n" + ] + } + ], + "prompt_number": 2 + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#There is no way you can set priority for a thread in Python. Hence, example 12.3 is avoided" + ], + "language": "python", + "metadata": {}, + "outputs": [] + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "example 12.4, page no. 225" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "\n", + "\"\"\"\n", + "There is no runnable interface in Python. Will use normal threading instead\n", + "\"\"\"\n", + "\n", + "import threading\n", + "class X(threading.Thread):\n", + " def run(self):\n", + " for i in range(1, 11):\n", + " print \"ThreadX: \", i\n", + " print \"End of ThreadX\"\n", + "\n", + "runnable = X()\n", + "threadx = Thread()\n", + "threadx.start()\n", + "print \"End of main thread\"\n", + "runnable.run()" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "End of main thread\n", + "ThreadX: 1\n", + "ThreadX: 2\n", + "ThreadX: 3\n", + "ThreadX: 4\n", + "ThreadX: 5\n", + "ThreadX: 6\n", + "ThreadX: 7\n", + "ThreadX: 8\n", + "ThreadX: 9\n", + "ThreadX: 10\n", + "End of ThreadX\n" + ] + } + ], + "prompt_number": 69 + } + ], + "metadata": {} + } + ] +}
\ No newline at end of file |