BMS-302 İleri Web Programlama. İş Parçacığı (Thread) ve Soket (Socket) Programlama

Benzer belgeler
Bölüm 4: İş Parçacıkları. Operating System Concepts with Java 8 th Edition

JAVA PROGRAMLAMAYA GİRİŞ

BİL BİLGİSAYAR PROGRAMLAMA (JAVA)

ECLIPSE PROGRAMININ ÇALIŞTIRILMASI

BİL-141 Bilgisayar Programlama I (Java)

İşletim Sistemleri (Operating Systems)

2.Eclipse açıldıktan sonra Workspace alanı seçilmesi gerekir. Workspace alanı projelerinizin fiziksel olarak bulunduğu kısımdır.

Bölüm 4: İş Parçacıkları. Operating System Concepts with Java 8 th Edition

Bİ L 131 Hafta 2. 1) Bilgisayara Java SE Development Kit 7 kurulması

Java Programlamaya Giriş

MAT213 BİLGİSAYAR PROGRAMLAMA I DERSİ Ders 1: Programlamaya Giriş

Görsel Programlama DERS 12. Görsel Programlama - Ders12/

Java da İstemci Tarafı Uygulamalar

Arayüz soyut metotların oluşturduğu bir koleksyondur. Bir sınıf arayüzü çalıştırırken arayüzün sahip olduğu soyut metotları da miras alır.

HSancak Nesne Tabanlı Programlama I Ders Notları

Java Programlama Giriş

İş Parçacıkları Thread(s)

Görsel Programlama DERS 01. Görsel Programlama - Ders01/ 1

JAVA PROGRAMLAMA DİLİ ÖZELLİKLERİ

/*Aşağıda ki kodları doğru şekilde anlar ve kullanırsanız java da sınıfları biraz da olsa anlamış olursunuz.*/

Java da Soyutlama ( Abstraction ) ve Çok-biçimlilik ( Polymorphism )

Üst Düzey Programlama

Paket Erişimleri. Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 4 1

İşletim Sistemleri. Hazırlayan: M. Ali Akcayol Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü

Java 2 Standart Edition SDK Kurulum ve Java ya Giriş

Erişim konusunda iki taraf vardır:

YZM 3102 İşletim Sistemleri

Soket, bir sunucu programı ve bir veya birden çok istemci programı arasında çift yönlü iletişim kuran bir yazılım uç noktasıdır.

OMNET Ağ Benzetim Yazılımı (Network Simulation Framework) BİL 372 Bilgisayar Ağları. GYTE - Bilgisayar Mühendisliği Bölümü

KARADENİZ TEKNİK ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ BİLGİSAYAR AĞLARI LABORATUARI. Soket Programlama

Java String İşlemleri

F.Ü. Mühendislik Fakültesi Bilgisayar Mühendisliği Bölümü Bilgisayar Sistemleri Laboratuvarı DENEY NO: 6 JAVA İLE DAĞITIK PROGRAMLAMA.

Bölüm 24. Java Ağ Uygulamaları 24.1 Java Appletleri. Bir Applet in Yaşam Döngüsü:

BM-209 Nesne Yönelimli Programlama. Yrd. Doç. Dr. İbrahim Alper Doğru Gazi Üniversitesi Teknoloji Fakültesi Bilgisayar Mühendisliği Bölümü

İşletim Sistemleri. Dr. Binnur Kurt Omega Eğitim ve Danışmanlık İşletim Sistemleri

BIL1202 ALGORİTMA VE PROGRAMLAMAYA GİRİŞ

Eclipse, Nesneler ve Java 2 Java Nereden Çıktı? 2

7. HAFTA. Erişim Belirleyiciler

Java ile Nesneye Yönelik Programlama (Object Oriented Programming)

MOBİL UYGULAMA GELİŞTİRME

Tomcat Uygulama Sunucusunun Kurulumu. İlk olarak adresine gidiyoruz.

JAVA ile DAĞITIK PROGRAMLAMA

Bölüm 4: Threads (İş Parçaları)

Nesne tabanlı programlama nesneleri kullanan programlamayı içerir. Bir nesne farklı olarak tanımlanabilen gerçek dünyadaki bir varlıktır.

BMÜ-112 ALGORİTMA VE PROGRAMLAMA-II LABORATUARI DENEY-2 FÖYÜ

MCR02-AE Ethernet Temassız Kart Okuyucu

İÇERİK 2 Java Kodlaması için Gerekli Programlar JRE, JDK kurulması ve Başlangıç Ayarları Java Kodlamayı Kolaylaştıran IDE ler Java Kod Yapısı İlk Java

Dağıtık Sistemler CS5001

Kaynak Kodlardan Derleme. Turquaz Muhasebe. Versiyon 0.2. Hüseyin Ergün. 26 Mart 2005

Chain of Responsibility Tasarım Şablonu KurumsalJava.com

PERKON PDKS Kurulum ve hızlı başlangıç rehberi

Data Structures Lab Güz

Nesne Yönelimli Programlama

Decorator Tasarım Şablonu

Klavyeden Basit Giriş/Çıkış İşlemleri

ASP.NET ile Bir Web Sitesi Oluşturma

ÖZGÜR YAZILIMLAR İLE J2EE

Tarih: 2 Ağustos 2018 Son versiyon: 1.8. EndNote X9 Windows Multi/Site kurulum talimatları

MAT214 BİLGİSAYAR PROGRAMLAMA II DERSİ Ders 18: Formatlı Grafik Kullanıcı Arayüzü Oluşturma

BMÜ-101 ALGORİTMA VE PROGRAMLAMAYA GİRİŞ LABORATUARI

İNÖNÜ ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ 2. SINIF 1. DÖNEM VERİ YAPILARI DERSİ LABORATUAR ÖDEVİ

Programlama Dillerinde Kullanılan Veri Tipleri

Facade (Cephe) Tasarım Şablonu KurumsalJava.com

EFe Event Management System

JAVA PROGRAMLAMAYA GİRİŞ

PAKET ERİŞİMLERİ SINIFLARIN YENİDEN KULLANIMI. BMU-112 Algoritma ve Programlama-II Yrd. Doç.Dr. İlhan AYDIN

BIL411 - BİLGİSAYAR AĞLARI LABORATUVARI

Start : Bu method init methodundan hemen sonra çalışır ve applet dosyası yürütülmeye başladığında çalışmaya başlar.

MOBİL UYGULAMA GELİŞTİRME

DOKUZ EYLÜL ÜNİVERSİTESİ FEN BİLİMLERİ ENSTİTÜSÜ MÜDÜRLÜĞÜ DERS/MODÜL/BLOK TANITIM FORMU. Dersin Kodu: CSE 5045

BİL-141 Bilgisayar Programlama I (Java)

Nesne Yönelimli Programlama

Görsel Programlama DERS 03. Görsel Programlama - Ders03/ 1

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

MAT214 BİLGİSAYAR PROGRAMLAMA II DERSİ Ders 8: Sınıf (Class) Yapılarına Giriş

AHTAPOT Güvenlik Duvarı Yönetim Sistemi Kullanımı

MOBİL UYGULAMA GELİŞTİRME

Dağıtık Sistemler CS5001

Java Dersi. Altuğ Bilgin Altıntaş

KANTAR UYGULAMASI Kurulum Kılavuzu

1. Aşağıdaki program parçacığını çalıştırdığınızda result ve param değişkenlerinin aldığı en son değerleri ve programın çıktısını yazınız.

UML ile Nesneye Yönelik Modelleme

Android e Giriş. Öğr.Gör. Utku SOBUTAY

İŞ PARÇACIKLARI (THREADS)

Lab7 DOĞU AKDENİZ ÜNİVERSİTESİ BİLGİSAYAR VE TEKNOLOJİ YÜKSEKOKULU BİLGİSAYAR PROGRAMCILIĞI. BTEP212 Java. Uygulama1: package javaapplication58;

Nesneye yönelik: Javada herşey bir nesnedir. Java nesne yönelimli olduğu için kolayca geliştirilebilir.

Bire-bir Sahiplik İlişkisi ile İlgili Sorular:

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

Spring Framework Eğitimi

GÜZ DÖNEMİ AKT105 BİLGİSAYAR PROGRAMLAMA DERSİ 9. UYGULAMA

AirTies Kablosuz Erişim Noktası (Access Point) olarak kullanacağınız cihazı bilgisayarınıza bağlayarak ayarlarını yapabilirsiniz.

JAVA API v2.0 Belge sürümü: 2.0.2

Maltepe Üniversitesi Bilgisayar Mühendisliği Bölümü Bilgisayar Ağları - 1 (BİL 403)

Java ile OpenGL e Giriş. NetBeans IDE si üzerinden kurulum

BMÜ-111 ALGORİTMA VE PROGRAMLAMA AKIŞ KONTROLÜ YRD. DOÇ. DR. İLHAN AYDIN

Önsöz. İçindekiler Algoritma Algoritma Nasıl Hazırlanır? Yazılımda Algoritma Mantığı Nedir? 1.2. Algoritma Örnekleri ve Sorular

Bilgisayar Sistemlerine Genel Bakış

NESNE YÖNELİMLİ PROGRAMLAMA HAFTA # 10. Yrd.Doç.Dr.Hacer Karacan

Scream! e gelen veri akışlarından bazılarını diğer bir kurum yada bilgisayarla paylaşmak için kullanılabilir.

Java JDK (Java Development Kit) Kurulumu:

Transkript:

BMS-302 İleri Web Programlama İş Parçacığı (Thread) ve Soket (Socket) Programlama

İş Parçacıkları (Threads) Ana programa paralel çalışan işler oluşturmak için kullanılır Makine birden fazla çekirdeğe sahipse (multi-core) işler aynı anda çalışabilir Aksi halde iş parçacıklarının her birine küçük zaman dilimleri verilerek aynı anda çalışıyor izlenimi verilir

Tek Çekirdekli Sistemde Eş Zamanlı Çalıştırma

Çok-çekirdekli Sistemde Paralel Çalıştırma

Tek ve Çok İş Parçacıklı İşlemler

İş Parçacıklarının Faydaları Cevap Verebilirlik (Responsiveness) Kaynak Paylaşımı (Resource Sharing) Ekonomi (Economy) Solaris: thread creation (1/30) ve context switch (1/5) Ölçeklenebilirlik (Scalability)

Çok-çekirdekli Programlama Çok-çekirdekli sistemlerin ortaya çıkmasıyla, programcılar için çok iş parçacıklı uygulamalar yazma gereği artmıştır Çok iş parçacıklı uygulamalarle ilgili zorluklar: Aktiviteleri bölmek (dividing activities) Denge (balance) Bilgileri Ayırmak (data splitting) Veri bağımlılığı (data dependency) Test ve Hata Ayıklama (testing and debugging)

Java İş Parçacıkları Java iş parçacıkları JVM tarafından yönetilir Bir Java uygulaması birden fazla iş parçacığına sahip olabilir Tüm iş parçacıkları bir önceliğe (priority) sahiptir Öncelikli iş parçacıklarına, az öncelikli iş parçacıklarına göre daha çok işlemci zamanı ayrılır Tüm iş parçacıkları, birbirlerinden ayırt edilebilmeleri için bir isme sahiptir Bir iş parçacığı oluşturulurken ismi belirtilmemişse, bir isim kendiliğinden oluşturulur

İş Parçacığını Tanımlama 1. Runnable arayüzünü gerçekleştirerek class ThreadRunnable implements Runnable { public void run() { // yeni iş parçacığında çalışacak kodlar } } 2. Thread sınıfını temel alan yeni bir sınıf oluşturarak class MyThread extends Thread { } public void run() { // yeni iş parçacığında çalışacak kodlar }

İş Parçacığını Çalıştırma İş parçacığını çalıştırmak için öncelikle iş parçacığı nesnesi oluşturulmalıdır MyThread mythread = new MyThread(); Ardından nesnenin start metodu çağırılarak iş parçacığı başlatılır mythread.start(); Bu iki adım, bir nesne değişkeni kullanılmaksızın aşağıdaki şekilde birleştirilrbilir (new MyThread()).start();

Thread Sınıfını Kullanarak İş Parçacığı Tanımlama public class ThreadBaslat extends Thread { public void run() { System.out.println("thread calisti"); } public static void main(string args[]) { } } (new ThreadBaslat()).start();

Runnable Arayüzünü Kullanarak İş Parçacığı Tanımlama public class ThreadRunnable implements Runnable { } public void run() { System.out.println("ThreadRunnable calisti"); } public static void main(string args[]) { (new Thread(new ThreadRunnable())).start(); }

Java İş Parçacığı Durumları

Eclipse Dağıtımı ve Projeleri Derste kullanılan Eclipse dağıtımı ve projelerini, dersin web sayfasından indirebilirsiniz Eclipse i çalıştırmadan önce bilgisayarınızda Java Geliştirme Ortamı nın (JDK) kurulu olduğundan emin olunuz Eclipse dağıtımı arşiv dosyasını indirip bir klasöre çıkardıktan sonra, Eclipse i açmak için Eclipse.exe ye tıklamanız yeterlidir

Projeleri İçeri Aktarmak (1/2) bm206-examples.zip dosyasını açın File -> Import... General -> Existing Projects into Workspace «Next >» butonuna tıklayın

Projeleri İçeri Aktarmak (2/2) «Browse...» butonuna tıklayın Proje örneklerini içeren dizini seçin «Copy projects into workspace» i seçin «Finish» butonuna tıklayın Projeler «Package Explorer» a eklenecektir

Soketler (Sockets) Bir ağ üzerinde çalışan iki işlem arasında veri alışverişi sağlayan sanal bağlantı noktalarıdır Ağ programlamada TCP ve UDP olmak üzere iki tip bağlantı şekli kullanılır Her soketin port adı verilen sanal bir bağlantı noktası bulunur Port 0 ile 65535 aralığında bir tamsayıdır

Soketler (Sockets) Soket programlama, hedefe ait IP adresi ve port numarası kullanılarak gerçekleştirilir 161.25.19.8:1625 soketi 161.25.19.8 IP li makinanın 1625 numaralı portuna arşılık gelmektedir İletişim bir çift soket arasında gerçekleşir Taraflar çoğu zaman sunucu ve istemci olarak isimlendirilirler Sunucu gelen istekleri bekleyip, istek geldiğinde cevap verir İstemci ise sunucuya bağlanarak ihtiyaç duyduğu bilgiyi elde eder

Soket İletişimi

Çok İş Parçacıklı Sunucu Mimarisi

Sık Kullanılan Servisler için Varsayılan Portlar

Soket Oluşturma

Girdi/Çıktı Stream leri

Soket Programlama Örneği Sunucu

Soket Programlama Örneği İstemci

İş Parçacığı ve Soket Örnek Uygulamaları