TimerTask এবং Timer Java-তে টাইমার ভিত্তিক কাজ পরিচালনা করার জন্য ব্যবহৃত দুটি প্রধান ক্লাস। TimerTask একটি অ্যাবস্ট্রাক্ট ক্লাস যা নির্দিষ্ট সময় পর বা নির্দিষ্ট সময় অন্তর অন্তর কোনো কাজ করার জন্য ব্যবহৃত হয়, এবং Timer একটি ক্লাস যা TimerTask-এর নির্ধারিত কাজগুলি বাস্তবায়ন এবং পরিচালনা করতে সহায়তা করে।
TimerTask ক্লাসটি মূলত নির্দিষ্ট সময় পর কোনো কাজ করার জন্য ব্যবহৃত হয় এবং এটি run() মেথডে কাজটি প্রোগ্রাম করা হয়। Timer ক্লাসটি একাধিক TimerTask-কে নির্দিষ্ট সময় অনুযায়ী কার্যকর করতে ব্যবহৃত হয়।
TimerTask এবং Timer এর ব্যবহার:
TimerTask: এটি একটি অ্যাবস্ট্রাক্ট ক্লাস যাrun()মেথডটি ইমপ্লিমেন্ট করে। এখানে আপনি কোন কাজটি সম্পাদন করতে চান তা নির্দিষ্ট করেন।Timer: এটিTimerTaskকে নির্দিষ্ট সময় বা সময় অন্তর অন্তর চালানোর জন্য ব্যবহৃত হয়।
TimerTask এর সাথে Repeated Task Execution
Repeated Task Execution বলতে বোঝানো হয় এমন একটি কাজ যা নির্দিষ্ট সময় অন্তর অন্তর একাধিক বার সম্পাদিত হয়। এটি Timer এবং TimerTask এর মাধ্যমে সহজেই করা যেতে পারে।
TimerTask এবং Timer এর কাজ করার প্রক্রিয়া:
TimerTaskএকটিrun()মেথড থাকে যেখানে কাজটি কোড করা হয়।Timerএরschedule()মেথড ব্যবহার করে একটি নির্দিষ্ট সময় পর অথবা নির্দিষ্ট সময় অন্তর অন্তর কাজটি সম্পাদিত হয়।
TimerTask এর মাধ্যমে Repeated Task Execution এর উদাহরণ:
import java.util.Timer;
import java.util.TimerTask;
public class RepeatedTaskExample {
public static void main(String[] args) {
// Creating a Timer object
Timer timer = new Timer();
// Creating a TimerTask to execute a task
TimerTask task = new TimerTask() {
@Override
public void run() {
System.out.println("Task executed at: " + System.currentTimeMillis());
}
};
// Scheduling the task to run every 2 seconds with an initial delay of 0 seconds
timer.scheduleAtFixedRate(task, 0, 2000); // 0ms delay, 2000ms interval
// After some time, we cancel the timer to stop the task execution
// (Optional step to demonstrate stopping after some time)
try {
Thread.sleep(10000); // Run for 10 seconds
} catch (InterruptedException e) {
e.printStackTrace();
}
// Canceling the Timer to stop the repeated task execution
timer.cancel();
System.out.println("Timer canceled, repeated task stopped.");
}
}
Output:
Task executed at: 1631527473152
Task executed at: 1631527475152
Task executed at: 1631527477152
Task executed at: 1631527479152
Timer canceled, repeated task stopped.
ব্যাখ্যা:
TimerTaskক্লাসটি একটি কার্যকরী কাজ প্রোগ্রাম করেছে, যা প্রতি ২ সেকেন্ড পর পরrun()মেথডে কিছু কাজ করতে বলে (এখানে বর্তমান সময় মুদ্রণ করা হয়েছে)।scheduleAtFixedRate()মেথডটি ০ মিলিসেকেন্ড বিলম্বে প্রথমবার কাজ শুরু করার নির্দেশ দেয় এবং তারপর ২ সেকেন্ড অন্তর অন্তর কাজটি পুনরায় সম্পাদিত হয়।- ১০ সেকেন্ড পর
timer.cancel()কল করার মাধ্যমে টাইমারটি বন্ধ করা হয়েছে।
TimerTask এবং Timer এর অন্যান্য মেথড:
schedule(TimerTask task, long delay):
- এই মেথডটি একটি নির্দিষ্ট বিলম্ব পর কাজ শুরু করতে ব্যবহার করা হয়। এটি একবারের জন্য কাজটি চালাতে ব্যবহৃত হয়।
timer.schedule(task, 5000); // Start task after 5 secondsscheduleAtFixedRate(TimerTask task, long delay, long period):
- এই মেথডটি নির্দিষ্ট সময় অন্তর অন্তর কাজটি পুনরায় চালানোর জন্য ব্যবহৃত হয়। প্রথমে বিলম্ব সময় নির্ধারণ করা হয় এবং তারপর নির্দিষ্ট সময়ে একাধিক বার কাজটি চলতে থাকে।
timer.scheduleAtFixedRate(task, 0, 1000); // Every 1 second, starts immediatelycancel():
- এই মেথডটি Timer এর কাজ বন্ধ করার জন্য ব্যবহৃত হয়।
timer.cancel(); // Stops the timer and cancels all scheduled tasksschedule(TimerTask task, Date time):
- এই মেথডটি একটি নির্দিষ্ট Date অবজেক্টের সময় অনুযায়ী কাজটি সম্পাদন করতে ব্যবহৃত হয়।
Date date = new Date(System.currentTimeMillis() + 5000); timer.schedule(task, date); // Schedule task to run after 5 seconds
এটি কখন ব্যবহার করবেন:
- Scheduled tasks: যখন আপনার নির্দিষ্ট সময় পর পর বা সময় অন্তর অন্তর কোনো কাজ করার দরকার হয়, যেমন অটো সেভ ফিচার, ইমেইল রিমাইন্ডার, কিংবা কোনও সার্ভিসের স্ট্যাটাস চেক।
- Simulations: টাইম-ভিত্তিক সিমুলেশন তৈরি করতে।
- Background tasks: ব্যাকগ্রাউন্ডে দীর্ঘ সময় ধরে চলতে থাকা কাজগুলো পরিচালনা করতে।
TimerTask এবং Timer এর মাধ্যমে আপনি সহজেই repeated tasks বা নির্দিষ্ট সময় পর পর কাজ করতে পারেন। এটি Java-তে টাইমার বা স্কেজুলড টাস্ক তৈরি করার একটি শক্তিশালী উপায়। TimerTask সাধারণত run() মেথডে কাজটি সম্পাদন করে এবং Timer এটি নির্দিষ্ট সময় পর বা নির্দিষ্ট সময় অন্তর অন্তর চালানোর জন্য ব্যবহৃত হয়। schedule(), scheduleAtFixedRate(), এবং cancel() মেথডগুলি টাইমার ব্যবস্থাপনায় গুরুত্বপূর্ণ ভূমিকা পালন করে।
Read more