---
title: "Problem vid skrivning till fil? ( Multitrådat )"
type: "forum-thread"
url: "https://www.webforum.nu/amne/java/81945-problem-vid-skrivning-till-fil-multitrådat"
topic: "Java"
topic_url: "https://www.webforum.nu/amne/java"
author: "SPiN"
published: "2003-07-13T22:35:21.000Z"
updated: "2003-07-14T14:48:05.000Z"
replies: 3
views: 258
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/java/81945-problem-vid-skrivning-till-fil-multitrådat"
---

# Problem vid skrivning till fil? ( Multitrådat )

## #1 — SPiN, 2003-07-13T22:35Z

Tjena!

Jag sitter och pular med en serverapplikation, och fick nu några funderingar. Jag har ett eget logg-system, för att logga vad som händer, där det skrivs information till en XML-fil. Serverapplikationen är multitrådad, dvs. skapar en ny tråd för varje klient. Vid varje klientanrop anropas en klass ( ReadWriteClient.class ) som sköter hanteringen av klienten, och i ReadWriteClient så öppnas filen, loggningen görs, och till slut stängs filen.

Problemet kan beskrivas så här:

*Klient\[0\] uppkopplad, ny tråd\[0\] skapas.
Logfilen öppnas av tråd\[0\].
Klient\[1\] uppkopplad, ny tråd\[1\] skapas.
Logfilen öppnas av tråd\[1\].
Loggning sker av tråd\[1\].
Loggen av tråd\[1\] sparas till filen.
Loggning sker av tråd\[0\].
Loggen av tråd\[0\] sparas till filen.*

Som ni ser så kommer vid det här scenariot loggen från tråd\[1\] att tappas bort, eftersom att skrivning från tråd\[0\] sker efter, som var först att öppna filen.

Hur löser jag det på bästa sätt? Ska jag synchronize:a metoderna för öppna/spara, eller ska jag skapa pooler och synchronize:a på något sätt?

MvH,

Permalänk: https://www.webforum.nu/p/81945

## #2 — Viktor, 2003-07-14T06:40Z

När du skapar dina trådar så skickar du med this som ett argument och i this, dvs grund tråden så har du funktionen för att skriva till logg filen, den funktionen är då också synchronized. Anroppet från klienten ser då ut såhär

```
parent.writeLog("New client");
```

Där parent då är pekaren (referensen) till grund tråden/programmet.

/Viktor

Permalänk: https://www.webforum.nu/p/1109039

## #3 — phonkworks, 2003-07-14T14:16Z

Eller sätt den som static synchronized så slipper man skicka med this överallt.

mvh
phonk

Permalänk: https://www.webforum.nu/p/1109267

## #4 — SPiN, 2003-07-14T14:48Z

Smart! Tack. :)

Permalänk: https://www.webforum.nu/p/1109274

---

Tråden på webben: https://www.webforum.nu/amne/java/81945-problem-vid-skrivning-till-fil-multitrådat
