<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Males Koding</title>
	<atom:link href="http://maleskoding.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://maleskoding.wordpress.com</link>
	<description>Blog yang isinya ternyata banyak kodingannya</description>
	<lastBuildDate>Wed, 09 Dec 2009 01:01:13 +0000</lastBuildDate>
	<generator>http://wordpress.com/</generator>
	<language>id</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<cloud domain='maleskoding.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://www.gravatar.com/blavatar/702e2df981533e6dde251257b899e9e0?s=96&#038;d=http://s.wordpress.com/i/buttonw-com.png</url>
		<title>Males Koding</title>
		<link>http://maleskoding.wordpress.com</link>
	</image>
			<item>
		<title>Serial General Matrix Multiplication</title>
		<link>http://maleskoding.wordpress.com/2009/12/09/serial-general-matrix-multiplication/</link>
		<comments>http://maleskoding.wordpress.com/2009/12/09/serial-general-matrix-multiplication/#comments</comments>
		<pubDate>Wed, 09 Dec 2009 01:01:13 +0000</pubDate>
		<dc:creator>petra</dc:creator>
				<category><![CDATA[C]]></category>
		<category><![CDATA[C++]]></category>
		<category><![CDATA[High Performance Computing]]></category>
		<category><![CDATA[Miscelleneaous]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Snippets]]></category>
		<category><![CDATA[Very Easy]]></category>
		<category><![CDATA[pemrograman]]></category>

		<guid isPermaLink="false">http://maleskoding.wordpress.com/?p=723</guid>
		<description><![CDATA[Cuman numpang posting source code. Know what, mata kuliah High Performance System menurut saya adalah salah satu mata kuliah yang unik. Tugasnya dari awal sampai akhir hanya melakukan perkalian matriks. Tapi yang menarik perkalian matriks ini dilakukan dalam berbagai cara dengan menggunakan fitur, pustaka, ataupun mesin berkinerja tinggi. Semua cara ini nantinya akan dibandingkan dengan [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=maleskoding.wordpress.com&blog=4688984&post=723&subd=maleskoding&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Cuman numpang posting <em>source code</em>. <em>Know what</em>, mata kuliah <em>High Performance System </em>menurut saya adalah salah satu mata kuliah yang unik. Tugasnya dari awal sampai akhir hanya melakukan perkalian matriks. Tapi yang menarik perkalian matriks ini dilakukan dalam berbagai cara dengan menggunakan fitur, pustaka, ataupun mesin berkinerja tinggi. Semua cara ini nantinya akan dibandingkan dengan cara perkalian matriks yang naif dan serial.<br />
Berikut adalah kodenya<br />
<span id="more-723"></span></p>
<pre class="brush: cpp;">
void sgemm(int n, float alpha, const float *A, const float *B, float beta, float *C){
    int i, j, k;
    for (i = 0; i &lt; n; ++i) {
        for (j = 0; j &lt; n; ++j) {
            float prod = 0;
            for (k = 0; k &lt; n; ++k) {
                prod += A[k * n + i] * B[j * n + k];
            }
            C[j * n + i] = alpha * prod + beta * C[j * n + i];
        }
    }
}
</pre>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/maleskoding.wordpress.com/723/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/maleskoding.wordpress.com/723/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/maleskoding.wordpress.com/723/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/maleskoding.wordpress.com/723/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/maleskoding.wordpress.com/723/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/maleskoding.wordpress.com/723/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/maleskoding.wordpress.com/723/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/maleskoding.wordpress.com/723/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/maleskoding.wordpress.com/723/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/maleskoding.wordpress.com/723/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=maleskoding.wordpress.com&blog=4688984&post=723&subd=maleskoding&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://maleskoding.wordpress.com/2009/12/09/serial-general-matrix-multiplication/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/74769ceff9148ba0181933857f966fee?s=96&#38;d=" medium="image">
			<media:title type="html">petra</media:title>
		</media:content>
	</item>
		<item>
		<title>Menghitung Durasi Waktu di C/C++</title>
		<link>http://maleskoding.wordpress.com/2009/12/08/menghitung-durasi-waktu-di-cc/</link>
		<comments>http://maleskoding.wordpress.com/2009/12/08/menghitung-durasi-waktu-di-cc/#comments</comments>
		<pubDate>Tue, 08 Dec 2009 06:44:57 +0000</pubDate>
		<dc:creator>petra</dc:creator>
				<category><![CDATA[Academic]]></category>
		<category><![CDATA[C]]></category>
		<category><![CDATA[C++]]></category>
		<category><![CDATA[High Performance Computing]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Snippets]]></category>
		<category><![CDATA[Very Easy]]></category>
		<category><![CDATA[realtime]]></category>
		<category><![CDATA[time]]></category>

		<guid isPermaLink="false">http://maleskoding.wordpress.com/?p=716</guid>
		<description><![CDATA[Di salah satu kuliah yakni High Performance System sering dibutuhkan fungsi untuk menghitung durasi waktu. Salah satu fungsi yang dapat dipakai adalah clock_gettime yang menyediakan ketelitian hingga nanosecond. Fungsi ini menggunakan struktur data yakni timespec yang juga didefinisikan di header time.h.

Cara untuk menghitung durasinya adalah sebagai berikut
http://www.opengroup.org/onlinepubs/000095399/functions/clock_getres.htmlget

#include &#60;stdio.h&#62;
#include &#60;time.h&#62;
#include &#60;stdlib.h&#62;
#include &#60;unistd.h&#62;

timespec diff(timespec start, timespec end)
{
 [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=maleskoding.wordpress.com&blog=4688984&post=716&subd=maleskoding&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Di salah satu kuliah yakni <em>High Performance System</em> sering dibutuhkan fungsi untuk menghitung durasi waktu. Salah satu fungsi yang dapat dipakai adalah <a href="http://www.opengroup.org/onlinepubs/000095399/functions/clock_getres.html"><strong>clock_gettime</strong></a> yang menyediakan ketelitian hingga <em>nanosecond</em>. Fungsi ini menggunakan struktur data yakni <strong>timespec</strong> yang juga didefinisikan di header <a href="http://www.opengroup.org/onlinepubs/007908799/xsh/time.h.html"><strong>time.h</strong></a>.<br />
<span id="more-716"></span><br />
Cara untuk menghitung durasinya adalah sebagai berikut</p>
<div id="_mcePaste" style="overflow:hidden;position:absolute;left:-10000px;top:0;width:1px;height:1px;">http://www.opengroup.org/onlinepubs/000095399/functions/clock_getres.html<strong>get</strong></div>
<pre class="brush: cpp;">
#include &lt;stdio.h&gt;
#include &lt;time.h&gt;
#include &lt;stdlib.h&gt;
#include &lt;unistd.h&gt;

timespec diff(timespec start, timespec end)
{
    timespec temp;
    if ((end.tv_nsec - start.tv_nsec) &lt; 0) {
        temp.tv_sec = end.tv_sec - start.tv_sec - 1;
        temp.tv_nsec = 1000000000 + end.tv_nsec - start.tv_nsec;
    } else {
        temp.tv_sec = end.tv_sec - start.tv_sec;
        temp.tv_nsec = end.tv_nsec - start.tv_nsec;
    }
    return temp;
}

int main(){

    timespec start, stop;
    clock_gettime(CLOCK_REALTIME, &amp;start);
    sleep(1);
    clock_gettime(CLOCK_REALTIME, &amp;stop);

    timespec duration = diff(start, stop);
    printf(&quot;%d.%09d s\n&quot;, duration.tv_sec, duration.tv_nsec);
    return 0;
}
</pre>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/maleskoding.wordpress.com/716/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/maleskoding.wordpress.com/716/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/maleskoding.wordpress.com/716/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/maleskoding.wordpress.com/716/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/maleskoding.wordpress.com/716/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/maleskoding.wordpress.com/716/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/maleskoding.wordpress.com/716/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/maleskoding.wordpress.com/716/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/maleskoding.wordpress.com/716/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/maleskoding.wordpress.com/716/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=maleskoding.wordpress.com&blog=4688984&post=716&subd=maleskoding&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://maleskoding.wordpress.com/2009/12/08/menghitung-durasi-waktu-di-cc/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/74769ceff9148ba0181933857f966fee?s=96&#38;d=" medium="image">
			<media:title type="html">petra</media:title>
		</media:content>
	</item>
		<item>
		<title>&#8220;Laws&#8221; of Computing</title>
		<link>http://maleskoding.wordpress.com/2009/12/08/laws-of-computing/</link>
		<comments>http://maleskoding.wordpress.com/2009/12/08/laws-of-computing/#comments</comments>
		<pubDate>Tue, 08 Dec 2009 04:11:31 +0000</pubDate>
		<dc:creator>petra</dc:creator>
				<category><![CDATA[Miscelleneaous]]></category>

		<guid isPermaLink="false">http://maleskoding.wordpress.com/?p=714</guid>
		<description><![CDATA[
Moore&#8217;s Law
Number of transistors on a single piece of silicon doubles every 19-24 months
Gilder&#8217;s Law
Network bandwith capacity triples every 12 months
Meltcalfe&#8217;s Law
Value of network increases exponentially as number of participants increases
Fitt&#8217;s Law
The time required to rapidly move to a target area is a function of the distance and the size of the target

Got from here.
(update: [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=maleskoding.wordpress.com&blog=4688984&post=714&subd=maleskoding&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><ul>
<li><strong>Moore&#8217;s Law</strong><br />
Number of transistors on a single piece of silicon doubles every 19-24 months</li>
<li><strong>Gilder&#8217;s Law</strong><br />
Network bandwith capacity triples every 12 months</li>
<li><strong>Meltcalfe&#8217;s Law</strong><br />
Value of network increases exponentially as number of participants increases</li>
<li><strong>Fitt&#8217;s Law<br />
</strong>The time required to rapidly move to a target area is a function of the distance and the size of the target</li>
</ul>
<p>Got from <a href="http://www.slideshare.net/guest63b060/java-me-open-source">here</a>.</p>
<p>(<strong>update: </strong>Fitt&#8217;s Law thanks to <a href="http://pebbie.wordpress.com">Peb</a>)</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/maleskoding.wordpress.com/714/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/maleskoding.wordpress.com/714/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/maleskoding.wordpress.com/714/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/maleskoding.wordpress.com/714/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/maleskoding.wordpress.com/714/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/maleskoding.wordpress.com/714/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/maleskoding.wordpress.com/714/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/maleskoding.wordpress.com/714/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/maleskoding.wordpress.com/714/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/maleskoding.wordpress.com/714/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=maleskoding.wordpress.com&blog=4688984&post=714&subd=maleskoding&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://maleskoding.wordpress.com/2009/12/08/laws-of-computing/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/74769ceff9148ba0181933857f966fee?s=96&#38;d=" medium="image">
			<media:title type="html">petra</media:title>
		</media:content>
	</item>
		<item>
		<title>Java Mobile Plurk</title>
		<link>http://maleskoding.wordpress.com/2009/12/07/java-mobile-plurk/</link>
		<comments>http://maleskoding.wordpress.com/2009/12/07/java-mobile-plurk/#comments</comments>
		<pubDate>Mon, 07 Dec 2009 10:21:33 +0000</pubDate>
		<dc:creator>petra</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[API]]></category>
		<category><![CDATA[Java ME]]></category>
		<category><![CDATA[Plurk]]></category>

		<guid isPermaLink="false">http://maleskoding.wordpress.com/?p=700</guid>
		<description><![CDATA[I am a big fan of Plurk (literally). And since they officially open up their API last Saturday, I&#8217;ve been working to build a Java ME version of the client these 3 days.
Here&#8217;s the screenshot. It&#8217;s not quite ready yet. But it&#8217;s nice to know that the app is getting its form.

(click to enlarge)
  [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=maleskoding.wordpress.com&blog=4688984&post=700&subd=maleskoding&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>I am a big fan of <a href="http://www.plurk.com">Plurk</a> (<em>literally</em>). And since they officially <a href="http://blog.plurk.com/2009/12/04/plurk-api-service/">open up their API</a> last Saturday, I&#8217;ve been working to build a Java ME version of the client these 3 days.</p>
<p>Here&#8217;s the screenshot. It&#8217;s not quite ready yet. But it&#8217;s nice to know that the app is getting its form.</p>
<p><a href="http://maleskoding.files.wordpress.com/2009/12/3.png"><img class="alignnone" src="http://maleskoding.files.wordpress.com/2009/12/3.png?w=400" alt="" width="400" /></a></p>
<p>(<em>click to enlarge</em>)</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/maleskoding.wordpress.com/700/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/maleskoding.wordpress.com/700/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/maleskoding.wordpress.com/700/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/maleskoding.wordpress.com/700/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/maleskoding.wordpress.com/700/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/maleskoding.wordpress.com/700/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/maleskoding.wordpress.com/700/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/maleskoding.wordpress.com/700/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/maleskoding.wordpress.com/700/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/maleskoding.wordpress.com/700/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=maleskoding.wordpress.com&blog=4688984&post=700&subd=maleskoding&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://maleskoding.wordpress.com/2009/12/07/java-mobile-plurk/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/74769ceff9148ba0181933857f966fee?s=96&#38;d=" medium="image">
			<media:title type="html">petra</media:title>
		</media:content>

		<media:content url="http://maleskoding.files.wordpress.com/2009/12/3.png" medium="image" />
	</item>
		<item>
		<title>The Readers and Writers Problem – Part 3</title>
		<link>http://maleskoding.wordpress.com/2009/12/06/the-readers-and-writers-problem-%e2%80%93-part-3/</link>
		<comments>http://maleskoding.wordpress.com/2009/12/06/the-readers-and-writers-problem-%e2%80%93-part-3/#comments</comments>
		<pubDate>Sun, 06 Dec 2009 17:49:29 +0000</pubDate>
		<dc:creator>petra</dc:creator>
				<category><![CDATA[Easy]]></category>
		<category><![CDATA[High Performance Computing]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Snippets]]></category>
		<category><![CDATA[Concurrency]]></category>
		<category><![CDATA[Multithreading]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://maleskoding.wordpress.com/?p=694</guid>
		<description><![CDATA[Masih melanjutkan tentang The Readers and Writers Problem. Java sudah menyediakan fitur Lock khusus untuk model permasalahan ini yakni ReadWriteLock yang disediakan oleh Concurrent APInya Java. Locking ini mempunyai 2 buah Lock yakni ReadLock yang dapat dimiliki beberapa Reader selama tidak ada Writer yang berjalan dan WriteLock yang ekslusif untuk sebuah Writer. Penggunaannya sangat mirip [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=maleskoding.wordpress.com&blog=4688984&post=694&subd=maleskoding&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Masih melanjutkan tentang <a href="http://maleskoding.wordpress.com/2009/12/06/the-readers-and-writers-problem-part-2/"><strong>The Readers and Writers Problem</strong></a>. Java sudah menyediakan fitur Lock khusus untuk model permasalahan ini yakni <a href="http://java.sun.com/j2se/1.5.0/docs/api/java/util/concurrent/locks/ReadWriteLock.html"><strong>ReadWriteLock</strong></a> yang disediakan oleh <a href="http://java.sun.com/j2se/1.5.0/docs/api/java/util/concurrent/package-summary.html">Concurrent API</a>nya Java. Locking ini mempunyai 2 buah <a href="http://java.sun.com/j2se/1.5.0/docs/api/java/util/concurrent/locks/Lock.html">Lock </a>yakni ReadLock yang dapat dimiliki beberapa Reader selama tidak ada Writer yang berjalan dan WriteLock yang ekslusif untuk sebuah Writer. Penggunaannya sangat mirip pada postingan sebelumnya. Kita perlu membuat sebuah <em>instance </em>dari ReadWriteLock tersebut. Karena ReadWriteLock hanya berupa Interface maka kita pakai Class yang sudah ada yakni <strong><a href="http://java.sun.com/j2se/1.5.0/docs/api/java/util/concurrent/locks/ReentrantReadWriteLock.html">ReentrantReadWriteLock</a></strong> (<em>meski dengan mudahnya kita dapat membuat sebuah Class ReadWriteLock baru dengan menggunakan kode pada postingan sebelum ini</em>)</p>
<pre class="brush: java;">
    private static ReentrantReadWriteLock rwlock = new ReentrantReadWriteLock();
    private static Lock rlock = rwlock.readLock();
    private static Lock wlock = rwlock.writeLock();
</pre>
<p><span id="more-694"></span></p>
<pre class="brush: java;">
public void read() {
        System.out.println(strid + &quot;: start!&quot;);
        while (true) {
            try {
                rlock.lock();
                System.out.println(strid + &quot;: start reading!&quot;);
                FileInputStream fis = new FileInputStream(fileName);
                byte[] b = new byte[4];
                fis.read(b);
                System.out.println(strid + &quot;: read \&quot;&quot; + new String(b) + &quot;\&quot;&quot;);
                fis.close();
                System.out.println(strid + &quot;: done reading!&quot;);
                rlock.unlock();
            } catch (Exception ex) {
                synchronized (System.out) {
                    ex.printStackTrace(System.out);
                }
            }
        }
    }
</pre>
<pre class="brush: java;">
public void write() {
        System.out.println(strid + &quot;: start!&quot;);
        while (true) {
            try {
                wlock.lock();
                System.out.println(strid + &quot;: start writing!&quot;);
                FileOutputStream fos = new FileOutputStream(fileName);
                String srandom = Long.toString((long) ((new Random()).nextDouble() * 9000) + 1000);
                //Writing random
                System.out.println(strid + &quot;: write \&quot;&quot; + srandom + &quot;\&quot;&quot;);
                fos.write(srandom.getBytes());
                fos.close();
                System.out.println(strid + &quot;: done writing!&quot;);
                wlock.unlock();
            } catch (Exception ex) {
                synchronized (System.out) {
                    ex.printStackTrace(System.out);
                }
            }
        }
    }
</pre>
<p>Kodenya dapat dilihat di <a href="http://maleskoding.files.wordpress.com/2009/12/readwrite4.odt">sini</a>. (<em>Caranya sama seperti sebelumnya</em>)</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/maleskoding.wordpress.com/694/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/maleskoding.wordpress.com/694/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/maleskoding.wordpress.com/694/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/maleskoding.wordpress.com/694/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/maleskoding.wordpress.com/694/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/maleskoding.wordpress.com/694/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/maleskoding.wordpress.com/694/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/maleskoding.wordpress.com/694/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/maleskoding.wordpress.com/694/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/maleskoding.wordpress.com/694/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=maleskoding.wordpress.com&blog=4688984&post=694&subd=maleskoding&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://maleskoding.wordpress.com/2009/12/06/the-readers-and-writers-problem-%e2%80%93-part-3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/74769ceff9148ba0181933857f966fee?s=96&#38;d=" medium="image">
			<media:title type="html">petra</media:title>
		</media:content>
	</item>
		<item>
		<title>Testing Maleskoding on Twitter</title>
		<link>http://maleskoding.wordpress.com/2009/12/06/testing-maleskoding-on-twitter/</link>
		<comments>http://maleskoding.wordpress.com/2009/12/06/testing-maleskoding-on-twitter/#comments</comments>
		<pubDate>Sun, 06 Dec 2009 17:16:33 +0000</pubDate>
		<dc:creator>petra</dc:creator>
				<category><![CDATA[Miscelleneaous]]></category>
		<category><![CDATA[Twitter]]></category>

		<guid isPermaLink="false">http://maleskoding.wordpress.com/?p=690</guid>
		<description><![CDATA[Cuman mau ngetes fitur wordpress yang bisa publikasi langsung di twitter. Follow twitter.com/maleskoding untuk postingan blog ini atau twitter.com/petrabarus untuk mengenal saya lebih jauh  
Untuk lebih jelasnya dapat dicoba di berita resminya.
       <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=maleskoding.wordpress.com&blog=4688984&post=690&subd=maleskoding&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Cuman mau ngetes fitur wordpress yang bisa publikasi langsung di twitter. Follow<a href="http://twitter.com/maleskoding"> </a><em><a href="http://twitter.com/maleskoding"><strong>twitter.com/maleskoding</strong></a> </em>untuk postingan blog ini atau <em><a href="http://twitter.com/petrabarus"><strong>twitter.com/petrabarus</strong></a> </em>untuk mengenal saya lebih jauh <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Untuk lebih jelasnya dapat dicoba di <a href="http://en.blog.wordpress.com/2009/10/08/publicize-twitter/">berita resminya</a>.</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/maleskoding.wordpress.com/690/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/maleskoding.wordpress.com/690/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/maleskoding.wordpress.com/690/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/maleskoding.wordpress.com/690/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/maleskoding.wordpress.com/690/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/maleskoding.wordpress.com/690/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/maleskoding.wordpress.com/690/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/maleskoding.wordpress.com/690/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/maleskoding.wordpress.com/690/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/maleskoding.wordpress.com/690/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=maleskoding.wordpress.com&blog=4688984&post=690&subd=maleskoding&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://maleskoding.wordpress.com/2009/12/06/testing-maleskoding-on-twitter/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/74769ceff9148ba0181933857f966fee?s=96&#38;d=" medium="image">
			<media:title type="html">petra</media:title>
		</media:content>
	</item>
		<item>
		<title>The Readers and Writers Problem &#8211; Part 2</title>
		<link>http://maleskoding.wordpress.com/2009/12/06/the-readers-and-writers-problem-part-2/</link>
		<comments>http://maleskoding.wordpress.com/2009/12/06/the-readers-and-writers-problem-part-2/#comments</comments>
		<pubDate>Sun, 06 Dec 2009 16:50:58 +0000</pubDate>
		<dc:creator>petra</dc:creator>
				<category><![CDATA[Academic]]></category>
		<category><![CDATA[High Performance Computing]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Snippets]]></category>
		<category><![CDATA[Very Easy]]></category>
		<category><![CDATA[Concurrency]]></category>
		<category><![CDATA[Multithreading]]></category>
		<category><![CDATA[pemrograman]]></category>
		<category><![CDATA[Semaphore]]></category>
		<category><![CDATA[Thread]]></category>

		<guid isPermaLink="false">http://maleskoding.wordpress.com/?p=685</guid>
		<description><![CDATA[Melanjutkan postingan sebelumnya tentang masalah The Readers and Writers Problem. Untuk memberikan hak ekslusif bagi Writers untuk menulis file maka diperlukan sebuah mekanisme locking. Mekanisme ini akan coba diimplementasikan pada sebuah class bernama Lock.

class Lock {

        public static int countRequestingWriter = 0;
       [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=maleskoding.wordpress.com&blog=4688984&post=685&subd=maleskoding&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Melanjutkan <a href="http://maleskoding.wordpress.com/2009/12/06/the-readers-and-writers-problem-part-1/">postingan sebelumnya</a> tentang masalah <em><strong>The Readers and Writers Problem</strong></em>. Untuk memberikan hak ekslusif bagi <em>Writers </em>untuk menulis <em>file</em> maka diperlukan sebuah mekanisme <em>locking</em>. Mekanisme ini akan coba diimplementasikan pada sebuah <em>class </em>bernama <strong>Lock</strong>.</p>
<pre class="brush: java;">
class Lock {

        public static int countRequestingWriter = 0;
        public static int countRunningWriter = 0;
        public static int countRunningReader = 0;

        public synchronized void lockRead() throws InterruptedException {
            while (countRunningWriter &gt; 0 || countRequestingWriter &gt; 0) {
                wait();
            }
            countRunningReader++;
        }

        public synchronized void unlockRead() {
            countRunningReader--;
            notifyAll();
        }

        public synchronized void lockWrite() throws InterruptedException {
            countRequestingWriter++;
            while (countRunningReader &gt; 0 || countRunningWriter &gt; 0) {
                wait();
            }
            countRequestingWriter--;
            countRunningWriter++;
        }

        public synchronized void unlockWrite() {
            countRunningWriter--;
            notifyAll();
        }
    }
</pre>
<p>Ketika <em>lock </em>akan dipakai oleh sebuah <em>thread </em>untuk melakukan <em>write locking</em>, maka <em>lock </em>akan memeriksa apakah sedang dilakukan <em>reading </em>atau <em>writing</em>. Jika ada maka <em>lock </em>akan menunggu. Ketika <em>thread </em>lain selesai melakukan tugasnya maka <em>lock </em>akan memberitahu <em>thread </em>yang menungu itu untuk memeriksa lagi. Jika berhasil maka <em>thread </em>akan menambahkan nilai variabel tersebut. Variabel ini bertugas sebagai semacam <em>semaphore</em>. Untuk menggunakan <em>lock </em>ini, <em>method </em>untuk <em>write </em>dan <em>read </em>harus dimodifikasi.</p>
<p><span id="more-685"></span></p>
<pre class="brush: java;">
public void read() {
        System.out.println(strid + &quot;: start!&quot;);
        while (true) {
            try {
                lock.lockRead();
                System.out.println(strid + &quot;: start reading!&quot;);
                FileInputStream fis = new FileInputStream(fileName);
                byte[] b = new byte[4];
                fis.read(b);
                System.out.println(strid + &quot;: read \&quot;&quot; + new String(b) + &quot;\&quot;&quot;);
                fis.close();
                System.out.println(strid + &quot;: done reading!&quot;);
                lock.unlockRead();
            } catch (Exception ex) {
                synchronized (System.out) {
                    ex.printStackTrace(System.out);
                }
            }
        }
    }
</pre>
<pre class="brush: java;">
public void write() {
        System.out.println(strid + &quot;: start!&quot;);
        while (true) {
            try {
                lock.lockWrite();
                System.out.println(strid + &quot;: start writing!&quot;);
                FileOutputStream fos = new FileOutputStream(fileName);
                String srandom = Long.toString((long) ((new Random()).nextDouble() * 9000) + 1000);
                //Writing random
                System.out.println(strid + &quot;: write \&quot;&quot; + srandom + &quot;\&quot;&quot;);
                fos.write(srandom.getBytes());
                fos.close();
                System.out.println(strid + &quot;: done writing!&quot;);
                lock.unlockWrite();
            } catch (Exception ex) {
                synchronized (System.out) {
                    ex.printStackTrace(System.out);
                }
            }
        }
    }
</pre>
<p>Hasilnya, <em>Writers </em>akan <em>serialized </em>dengan seluruh <em>Readers.</em> Contoh keluarannya dapat dilihat di bawah.</p>
<pre>..
Writer 1: start writing!
Writer 1: write "8742"
Writer 1: done writing!
Reader 4: start reading!
Reader 2: start reading!
Reader 5: start reading!
Reader 3: start reading!
Reader 5: read "8742"
Reader 5: done reading!
Reader 5: start reading!
Reader 1: start reading!
Reader 1: read "8742"
Reader 3: read "8742"
Reader 3: done reading!
Reader 4: read "8742"
Reader 5: read "8742"
Reader 4: done reading!
...
</pre>
<p>Kode dapat dilihat di <a href="http://maleskoding.files.wordpress.com/2009/12/readwrite31.odt">sini</a>. (<em>ganti ekstensi jadi zip</em>)</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/maleskoding.wordpress.com/685/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/maleskoding.wordpress.com/685/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/maleskoding.wordpress.com/685/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/maleskoding.wordpress.com/685/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/maleskoding.wordpress.com/685/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/maleskoding.wordpress.com/685/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/maleskoding.wordpress.com/685/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/maleskoding.wordpress.com/685/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/maleskoding.wordpress.com/685/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/maleskoding.wordpress.com/685/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=maleskoding.wordpress.com&blog=4688984&post=685&subd=maleskoding&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://maleskoding.wordpress.com/2009/12/06/the-readers-and-writers-problem-part-2/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/74769ceff9148ba0181933857f966fee?s=96&#38;d=" medium="image">
			<media:title type="html">petra</media:title>
		</media:content>
	</item>
		<item>
		<title>The Readers and Writers Problem &#8211; Part 1</title>
		<link>http://maleskoding.wordpress.com/2009/12/06/the-readers-and-writers-problem-part-1/</link>
		<comments>http://maleskoding.wordpress.com/2009/12/06/the-readers-and-writers-problem-part-1/#comments</comments>
		<pubDate>Sun, 06 Dec 2009 14:56:38 +0000</pubDate>
		<dc:creator>petra</dc:creator>
				<category><![CDATA[High Performance Computing]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Snippets]]></category>
		<category><![CDATA[Very Easy]]></category>

		<guid isPermaLink="false">http://maleskoding.wordpress.com/?p=672</guid>
		<description><![CDATA[Setelah mengimplementasikan Multithread di postingan sebelumnya, jadi pengen iseng-iseng nyoba salah satu problem di IPC yakni Readers and Writers. Sebelumnya di kuliah High Performance System, pernah dikasih tugas yang menyangkut IPC problem juga yakni Producer dan Consumer, tapi pakai bahasa C dan pakai  POSIX thread. Sekarang ingin coba implementasi di Java.
Permasalahan Readers and Writers ini [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=maleskoding.wordpress.com&blog=4688984&post=672&subd=maleskoding&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Setelah mengimplementasikan Multithread di <a href="http://maleskoding.wordpress.com/2009/12/06/contoh-multithread-di-java/">postingan sebelumnya</a>, jadi pengen iseng-iseng nyoba salah satu problem di IPC yakni <strong><em>Readers and Writers</em></strong>. Sebelumnya di kuliah <em>High Performance System</em>, pernah dikasih tugas yang menyangkut IPC problem juga yakni Producer dan Consumer, tapi pakai bahasa C dan pakai  <a href="http://opengroup.org/onlinepubs/007908799/xsh/pthread.h.html"><strong>POSIX thread</strong></a>. Sekarang ingin coba implementasi di Java.</p>
<p>Permasalahan Readers and Writers ini tidak jauh berbeda dengan <a href="http://en.wikipedia.org/wiki/Dining_philosophers_problem">Dining Philosopher</a>, hanya saja di <strong><em>Readers and Writers</em></strong> ini terdapat beberapa Readers dan Writers. Kedua jenis ini memiliki perlakuan yang berbeda. Sebuah <em>filefile </em> boleh diakses beberapa Reader bersamaan, tetapi ketika Writer sedang menulis tidak ada yang boleh menulis <em>file </em>tersebut.</p>
<p>Masalah ini bisa dilihat setelah kita memodifikasi <em>method </em>untuk <em>write </em>dan <em>read </em>pada kode di postingan sebelumnya.<br />
<span id="more-672"></span></p>
<pre class="brush: java;">
public void read() {
        System.out.println(strid + &quot;: start!&quot;);
        while (true) {
            System.out.println(strid + &quot;: start reading!&quot;);
            try {
                FileInputStream fis = new FileInputStream(fileName);
                byte[] b = new byte[5];
                fis.read(b);
                System.out.println(strid + &quot;: read \&quot;&quot; + new String(b) + &quot;\&quot;&quot;);
                fis.close();
            } catch (FileNotFoundException ex) {
                ex.printStackTrace();
            } catch (IOException ex) {
                ex.printStackTrace();
            } catch (Exception ex) {
                ex.printStackTrace();
            }
            System.out.println(strid + &quot;: done reading!&quot;);
        }
    }
</pre>
<pre class="brush: java;">
public void write() {
        System.out.println(strid + &quot;: start!&quot;);
        while (true) {
            System.out.println(strid + &quot;: start writing!&quot;);
            try {
                FileOutputStream fos = new FileOutputStream(fileName);
                String srandom = Long.toString((long) ((new Random()).nextDouble() * 9000) + 1000);
                //Writing random
                System.out.println(strid + &quot;: write \&quot;&quot; + srandom + &quot;\&quot;&quot;);
                fos.write(srandom.getBytes());
                fos.close();
            } catch (FileNotFoundException ex) {
                ex.printStackTrace();
            } catch (IOException ex) {
                ex.printStackTrace();
            } catch (Exception ex) {
                ex.printStackTrace();
            }
            System.out.println(strid + &quot;: done writing!&quot;);
        }
    }
</pre>
<p>Jika kode ini dijalankan maka keluarannya dapat berupa</p>
<pre>Reader 1: start!
Writer 1: start!
Reader 2: start!
Writer 1: start writing!
Reader 1: start reading!
Reader 2: start reading!
Reader 2: read "     "
Reader 2: done reading!
Reader 1: read "     "
Reader 2: start reading!
Reader 1: done reading!
Reader 1: start reading!
Reader 2: read "     "
Writer 1: write "8727"
Reader 2: done reading!
Reader 1: read "     "
Reader 2: start reading!
Reader 1: done reading!
Reader 1: start reading!
Writer 1: done writing!
Writer 1: start writing!
Reader 2: read "8727 "
Reader 1: read "8727 "
Reader 2: done reading!
Reader 2: start reading!
Reader 2: read "     "
Reader 1: done reading!
Reader 2: done reading!
Reader 1: start reading!
Reader 2: start reading!
Writer 1: write "9972"
Reader 1: read "9972 "
Writer 1: done writing!
Reader 2: read "9972 "
Reader 1: done reading!
Reader 2: done reading!
Writer 1: start writing!
Reader 2: start reading!
Reader 1: start reading!
Reader 2: read "     "
Writer 1: write "7951"
Reader 2: done reading!
Reader 1: read "     "
Reader 2: start reading!
Writer 1: done writing!
Writer 1: start writing!
Reader 1: done reading!
Reader 1: start reading!
Reader 2: read "7951 "
...</pre>
<p>Dapat dilihat hasilnya agak kacau karena tidak ada sinkronisasi sama sekali. <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  Kadang-kadang si Readernya tidak mendapat hasil apa-apa karena berkas sedang di tulis.<br />
Kodenya dapat diunduh di <a href="http://maleskoding.files.wordpress.com/2009/12/readwrite2.odt">sini</a>. (<em>rename extension ke zip dulu</em>)</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/maleskoding.wordpress.com/672/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/maleskoding.wordpress.com/672/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/maleskoding.wordpress.com/672/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/maleskoding.wordpress.com/672/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/maleskoding.wordpress.com/672/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/maleskoding.wordpress.com/672/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/maleskoding.wordpress.com/672/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/maleskoding.wordpress.com/672/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/maleskoding.wordpress.com/672/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/maleskoding.wordpress.com/672/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=maleskoding.wordpress.com&blog=4688984&post=672&subd=maleskoding&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://maleskoding.wordpress.com/2009/12/06/the-readers-and-writers-problem-part-1/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/74769ceff9148ba0181933857f966fee?s=96&#38;d=" medium="image">
			<media:title type="html">petra</media:title>
		</media:content>
	</item>
		<item>
		<title>Contoh Multithread di Java</title>
		<link>http://maleskoding.wordpress.com/2009/12/06/contoh-multithread-di-java/</link>
		<comments>http://maleskoding.wordpress.com/2009/12/06/contoh-multithread-di-java/#comments</comments>
		<pubDate>Sun, 06 Dec 2009 13:36:29 +0000</pubDate>
		<dc:creator>petra</dc:creator>
				<category><![CDATA[Academic]]></category>
		<category><![CDATA[High Performance Computing]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Snippets]]></category>
		<category><![CDATA[Very Easy]]></category>
		<category><![CDATA[Concurrency]]></category>
		<category><![CDATA[Multithread]]></category>
		<category><![CDATA[Thread]]></category>

		<guid isPermaLink="false">http://maleskoding.wordpress.com/?p=665</guid>
		<description><![CDATA[Cuman snippets aja, kadang-kadang suka lupa gimana cara pakai multithread di Java. ^_^

import java.util.logging.Level;
import java.util.logging.Logger;

/**
 *
 * @author Petra Barus
 */
public class ReadWrite1 implements Runnable {

    //
    public static int countwriter = 0;
    public static int countreader = 0;
    //
    [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=maleskoding.wordpress.com&blog=4688984&post=665&subd=maleskoding&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Cuman <em>snippets</em> aja, kadang-kadang suka lupa gimana cara pakai multithread di Java. ^_^</p>
<pre class="brush: java;">
import java.util.logging.Level;
import java.util.logging.Logger;

/**
 *
 * @author Petra Barus
 */
public class ReadWrite1 implements Runnable {

    //
    public static int countwriter = 0;
    public static int countreader = 0;
    //
    public static final int READER = 0;
    public static final int WRITER = 1;
    //
    private int type;
    private int id;
    private String strid;

    public ReadWrite1(int type) {
        this.type = type;
        this.strid = (type == READER) ? (&quot;Reader &quot; + (this.id = ++countreader)) : (&quot;Writer &quot; + (this.id = ++countwriter));
    }

    public static void main(String[] argv) {
        (new Thread(new ReadWrite1(READER))).start();
        (new Thread(new ReadWrite1(READER))).start();
        (new Thread(new ReadWrite1(WRITER))).start();
    }

    public void run() {
        if (type == READER) {
            read();
        } else if (type == WRITER) {
            write();
        }
    }

    //*********************************************************
    // Reader
    //*********************************************************
    /**
     *
     */
    public void read() {
        System.out.println(strid + &quot;: start!&quot;);
        while (true) {
            System.out.println(strid + &quot;: reading!&quot;);
            try {
                Thread.sleep(1000);
            } catch (InterruptedException ex) {
                Logger.getLogger(ReadWrite1.class.getName()).log(Level.SEVERE, null, ex);
            }
        }
    }
    //*********************************************************
    //*********************************************************
    // Writer
    //*********************************************************

    public void write() {
        System.out.println(strid + &quot;: start!&quot;);
        while (true) {
            System.out.println(strid + &quot;: writing!&quot;);
            try {
                Thread.sleep(1000);
            } catch (InterruptedException ex) {
                Logger.getLogger(ReadWrite1.class.getName()).log(Level.SEVERE, null, ex);
            }
        }
    }
    //*********************************************************
}
</pre>
<p>Contoh keluarannya<br />
<span id="more-665"></span></p>
<pre>
Reader 1: start!
Reader 2: start!
Reader 2: reading!
Reader 1: reading!
Writer 1: start!
Writer 1: writing!
Reader 1: reading!
Reader 2: reading!
Writer 1: writing!
Reader 1: reading!
Reader 2: reading!
Writer 1: writing!
Reader 2: reading!
Reader 1: reading!
Writer 1: writing!
</pre>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/maleskoding.wordpress.com/665/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/maleskoding.wordpress.com/665/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/maleskoding.wordpress.com/665/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/maleskoding.wordpress.com/665/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/maleskoding.wordpress.com/665/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/maleskoding.wordpress.com/665/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/maleskoding.wordpress.com/665/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/maleskoding.wordpress.com/665/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/maleskoding.wordpress.com/665/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/maleskoding.wordpress.com/665/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=maleskoding.wordpress.com&blog=4688984&post=665&subd=maleskoding&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://maleskoding.wordpress.com/2009/12/06/contoh-multithread-di-java/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/74769ceff9148ba0181933857f966fee?s=96&#38;d=" medium="image">
			<media:title type="html">petra</media:title>
		</media:content>
	</item>
		<item>
		<title>New Java User Group &#8211; Bandung</title>
		<link>http://maleskoding.wordpress.com/2009/12/05/new-java-user-group-bandung/</link>
		<comments>http://maleskoding.wordpress.com/2009/12/05/new-java-user-group-bandung/#comments</comments>
		<pubDate>Sat, 05 Dec 2009 05:43:50 +0000</pubDate>
		<dc:creator>petra</dc:creator>
				<category><![CDATA[Miscelleneaous]]></category>
		<category><![CDATA[Bandung]]></category>
		<category><![CDATA[Java]]></category>

		<guid isPermaLink="false">http://maleskoding.wordpress.com/?p=659</guid>
		<description><![CDATA[

Java User Group (JUG) Bandung merupakan suatu komunitas pengguna java yang ada di Bandung. Komunitas ini berisikan anggota yang ingin belajar lebih dalam lagi mengenai dunia pemrograman Java. Karena itu, JUG di tujukan untuk semua orang yang tertarik dengan Java.
Anggota JUG sementara ini masih dari regional Bandung, namun tidak menutup kemungkinan anggota dari luar kota [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=maleskoding.wordpress.com&blog=4688984&post=659&subd=maleskoding&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><div class="snap_preview">
<p><img class="aligncenter size-full wp-image-185" title="jug-bandung" src="http://kristantohans.files.wordpress.com/2009/12/jug-bandung.png?w=459&amp;h=127&#038;h=127" alt="" width="459" height="127" /><br />
Java User Group (JUG) Bandung merupakan suatu komunitas pengguna java yang ada di Bandung. Komunitas ini berisikan anggota yang ingin belajar lebih dalam lagi mengenai dunia pemrograman Java. Karena itu, JUG di tujukan untuk semua orang yang tertarik dengan Java.</p>
<p>Anggota JUG sementara ini masih dari regional Bandung, namun tidak menutup kemungkinan anggota dari luar kota untuk bergabung. Silahkan <a href="http://groups.google.com/group/jug-bandung" target="_blank">click</a> untuk bergabung dengan JUG Bandung.</p>
<p><strong>Affiliate Partner : </strong></p>
<p><a href="http://groups.google.com/group/jug-bandung">OpenSolaris User Group Bandung</a></p>
<p><img class="aligncenter size-full wp-image-187" title="osug-bandung" src="http://kristantohans.files.wordpress.com/2009/12/osug-bandung.png?w=360&amp;h=100&#038;h=100" alt="" width="360" height="100" /></p>
<p>Repost from <a href="http://kristantohans.wordpress.com/2009/12/05/new-java-user-group-bandung/">here</a>.</p>
</div>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/maleskoding.wordpress.com/659/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/maleskoding.wordpress.com/659/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/maleskoding.wordpress.com/659/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/maleskoding.wordpress.com/659/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/maleskoding.wordpress.com/659/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/maleskoding.wordpress.com/659/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/maleskoding.wordpress.com/659/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/maleskoding.wordpress.com/659/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/maleskoding.wordpress.com/659/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/maleskoding.wordpress.com/659/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=maleskoding.wordpress.com&blog=4688984&post=659&subd=maleskoding&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://maleskoding.wordpress.com/2009/12/05/new-java-user-group-bandung/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/74769ceff9148ba0181933857f966fee?s=96&#38;d=" medium="image">
			<media:title type="html">petra</media:title>
		</media:content>

		<media:content url="http://kristantohans.files.wordpress.com/2009/12/jug-bandung.png?w=459&#38;h=127" medium="image">
			<media:title type="html">jug-bandung</media:title>
		</media:content>

		<media:content url="http://kristantohans.files.wordpress.com/2009/12/osug-bandung.png?w=360&#38;h=100" medium="image">
			<media:title type="html">osug-bandung</media:title>
		</media:content>
	</item>
	</channel>
</rss>